Servlet编程基础

来源:互联网 发布:做淘宝需要营业执照吗 编辑:程序博客网 时间:2024/06/08 06:09
// 重定向,外部跳/* * 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文件
//获取客户端提交的所有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()+",欢迎您,再次光临!");
    }  
        
    }  
   }





0 0