防止sql注入文
发布网友
发布时间:2022-06-10 00:30
我来回答
共1个回答
热心网友
时间:2024-11-24 03:24
' or 1=1
----------------------------
给你个例子: 已登录为例
//用户验证servlet
//登录界面
package com.tsinghua;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class LoginCl extends HttpServlet {
//重写init函数
public void init(){
try {
//只会被调用一次
//创建一个FileReader
FileReader f=new FileReader("f:\\myCounter.txt");
BufferedReader br=new BufferedReader(f);
//读出一行数据
String numVal=br.readLine();
//一定要关闭文件流
br.close();
//将times值放入到servletcontext
this.getServletContext().setAttribute("visitTimes",numVal);
System.out.println ("inti 被调用");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//重写destroy函数
public void destroy(){
try {
//在将新的次数写会去
FileWriter fw=new FileWriter("f:\\myCounter.txt");
BufferedWriter bw=new BufferedWriter(fw);
//在文件中写入数据
bw.write(this.getServletContext().getAttribute("visitTimes").toString());
//关闭文件流
bw.close();
System.out.println ("destroy 被调用");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//处理get请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){
//业务逻辑
Connection ct=null;
Statement sm=null;
ResultSet rs=null;
try {
//接受用户名和密码
String u=req.getParameter("usrename");
String p=req.getParameter("passwd");
//调用UserBeanCl,1.创建一个对象
UserBeanCl ubc=new UserBeanCl();
//2.使用UserBeanCl的方法
if(ubc.checkUser(u,p)){
//合法用户
String keep=req.getParameter("keep");
if(keep!=null){
//将用户名和密码保存在客户端(cookie)
//创建
Cookie name=new Cookie("myname",u);
Cookie pass=new Cookie("mypasswd",p);
//设置时间
name.setMaxAge(14*24*3600);
pass.setMaxAge(14*24*3600);
//回写到客户端
res.addCookie(name);
res.addCookie(pass);
}
//将用户名和密码放入到session中
HttpSession hs=req.getSession(true);
hs.setMaxInactiveInterval(30);
hs.setAttribute("uname",u);
//将serlvetContext中的 visitTime所对应的值++
String times=this.getServletContext().getAttribute("visitTimes").toString();
//对times++再重新放回servlet
this.getServletContext().setAttribute("visitTimes",(Integer.parseInt(times)+1)+"");
//跳转到wel
res.sendRedirect("Main");
}else{
//不合法
//跳转
res.sendRedirect("login");//写你要到的servlet的那个url
}
}
catch (Exception ex) {
ex.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
}
if(sm!=null){
sm.close();
}
if(ct!=null){
ct.close();
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
//处理post请求
//req: 用于获得客户端(浏览器)的信息
//res: 用于向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}