// 重定向,外部跳
/*
* 1. 地址栏发生变化
* 2. 不能重定向到服务器内部资源
* 3. 重定向后请求对象销毁
*/
//response.sendRedirect("WEB-INF/a.html");
//response.sendRedirect("WEB-INF/b.html");
//response.sendRedirect("b.jsp");
//out.print("<script>alert('Success');location.href='b.jsp';</script>");
// 转发,内部跳
/*
* 1、地址栏不发生变化
* 2. 可以访问服务器内部资源
* 3. 转发后请求对象不会被销毁
*/
//request.getRequestDispatcher("WEB-INF/b.html").forward(request, response);
//request.getRequestDispatcher("b.jsp").forward(request, response);
request.getRequestDispatcher("b.jsp").include(request, response);
out.flush();
out.close();
方式一(重定向或外部跳):
重定向:使用response对象的sendRedirect(“跳转的页面”);
示例:response.sendRedirect(“跳转的页面”);
方式二(请求转发或内部跳):
请求转发器:通过request对象的getRequestDispatcher(“跳转的页面”)方法;获取请求转发器对象RequestDispatcher,使用该对象的forward()方法或者include()方法进行转发。
示例:request.getRequestDispatcher(“页面路径”).for
ward(request,response);
HttpSession接口(session)常用方法:
方法名 |
描述 |
setAttribute(name,value) |
将数据存放在session中 |
getAttribute(name) |
根据名字从session中获取数据 |
removeAttribute(name) |
根据名字从session中删除指定的数据 |
getMaxInactiveInterval() |
返回session的最大有效时间(单位秒)默认30分钟 |
setMaxInactiveInterval(秒数) |
设置session的最大有效时间(时间值越小性能越高) |
invalidate() |
使session立即失效(session中的数据被清除); 一般用在退出系统。 |
解决乱码问题中,设置请求内容的字符编码?
reqeust.setCharacterEncoding(“utf-8”);
解决乱码问题中,设置输出内容及字符编码?
response.setContentType(“text/html;charset=utf-8”)
或者
response.setCharacterEncoding(“utf-8”);
//处理get方式的编码
public void doPost(HttpServletRequest request,HttpServletRespons
e response){
String name = request.getParamter(“txtname”);//name现在是乱码
//处理get方式的编码
name = new String(name.getBytes(“iso-8859-1”),”gbk”);
}
实现SingleThreadModel接口
Public class security extends HttpServlet implements SimpleThreadModel{}
同步对共享数据的操作
Synchronized(this){
Out = response.getWriter();
try{ //为了突出并发问题,让线程睡眠5秒
Thread.sleep(5000);
}catch(Exception e){
e.printStackTrace();
}
}
避免使用实例变量
PrintWriter Out = response.getWriter();//将该语句放到方法里去
//
写入Cookie文件
Cookie ck = new Cookie(key,value);
//设置Cookie对象的最大有效时间(单位为秒)
ck.setMaxAge(10);
//发送Cookie到客户端浏览器
response.addCookie(ck);
//设置Cookie对象的最大有效时间(单位为秒)
ck.setMaxAge(10);
//发送Cookie到客户端浏览器
response.addCookie(ck);
//
读取
Cookie
文件
//获取客户端提交的所有Cookie对象
Cookie ck[] = request.getCookies();
//判断客户端是否存在Cookie
if(ck!=null){
for(int i=0;i<ck.length;i++){
Cookie current_ck= ck[i];
if(current_ck.getName().equals(key)){
out.println(current_ck.getValue()+",欢迎您,再次光临!");
}
}
}