Servlet笔记总结

1.常用方法(以继承HttpServlet方法为例创建一个servlet):
(1)HttpServletRequest request:
·request.getRequestDispatcher("").forward(request, response)
                                                                           //转发
·requset.getAttribute("String xx")                      //获取属性值,返回类型Object
·request.setAttribute("String xx", "Object xx")   //在request域存储属性和值

·request.setCharacterEncoding("utf-8");            //解决服务器端接收参数中问乱码显示问题
·String xx = request.getParameter("xx");           //获取请求参数值(表单提交)
·HttpSession session = request.getSession();    //获取session对象
·Cookie[] cookies = request.getCookies();         //读取客户端的所有Cookie
·request.getLocalAddr()                                      //获取请求接口的IP地址
(2)HttpServletResponse response:
·PrintWriter out = response.getWriter()            //得到PrintWriter对象
·out.println("<h1>hello world<h1>");              //向向客户端浏览器发送数据
·response.sendRedirect("error");                       //重定向
·response.setCharacterEncoding("utf-8");        //设置响应字符集,解决浏览器端显示中文乱码问题
·response.setContentType("text/html");           //设置响应文本类型,解决浏览器端显示中文乱码问题
·response.setHeader("refresh","3;url=login");  //响应界面3秒后自动跳转
·response.addCookie(cookie);                          //绑定cookie响应到浏览器
·response.encodeURL();                                    //当浏览器禁用cookie后使用此方法可以自动将生成的SessiId通过URL保存到浏览器内存中
2.url参数总结:
    (1)超链接、转发、重定向、表单等请求url和带参变量之间用”?”隔开
    (2)参数之间用”&”隔开
    (3)url直接带参数不需要加单双引号,但是当参数值是变量名时候,一定要注意字符串的拼接规则!例如:sendRedirect(“welcome?username=”+username)
    (4)默认情况下都是get提交方式。
3.什么是Cookie:
     Cookies是一种由服务器发给客户的片段信息,存储在客户端浏览器的内存中或硬盘上,在客户对服务器的请求中发送它。
     Cookies以键-值对的方式记录会话跟踪的内容,服务器利用响应报头Set-Cookie来发送Cookie信息
4.会话跟踪(session和cookie的结合):
         当请求一个会话的时候,Servlet容器就创建一个HttpSession对象,并为该对象分配一个唯一的Session ID,将其作为Cookie自动发送给浏览器,浏览器在内存中保存这个Cookie,通过request的相关方法可以获取!在同一用户的不同请求中,浏览器未关闭,则Cookie保存的id一直会存在,并且用于服务器唯一标识是否是同一用户操作,也叫会话期!当关闭浏览器id值失效。重新请求会在服务器中判断此浏览器Cookie中的id值是否为空,为空就会确定是一个新的话会然后生成一个新的id继续保存至浏览器唯一标识同一用户的不同操作,这个过程也叫Cookie的会话跟踪!
【注意:Session在服务器端保存信息,Cookie在客户端保存信息;Session对象只有一个而Cookie对象有多个!】
5. 在表单和超链接的url路径中,默认路径为项目的绝对路径,所以不需要再在发送的信息前面添加‘/’,但是为了和此提交的路径匹配和截取,servlet中的url需要添加/然后经行后面的字符匹配。在struts中因为已经在web.xml中通过/*经行了截取,所以最终在struts2.xml中经行匹配的时候,action的值就不需要再加绝对路径了!
6.网页打开的两种方式以及request、session、application区别:


7.get和post提交方法的区别:
(1)get:url地址栏提交信息可见,不安全且对提交信息大小有限制,但是处理速度较快。
(2)post:url地址栏提交信息不可见,对提交信息进行了封装所有安全性高,并且不对提交信息大小限制,但是处理速度相对get方法慢。
8.Servlet配置文件web.xml解析:
<servlet>
        <servlet-name>MyServlet</servlet-name>                 // 3.寻找类名
        <servlet-class>com.MyServlet</servlet-class>            // 4.访问该类对应路径下的servlet程序,路径包含包名和类名!
  </servlet>
  <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>                 // 2.设置该映射对象类的类名
        <url-pattern>/index</url-pattern>                              // 1.设置Servlet类的URI映射
  </servlet-mapping>
9.Cookie和Session的区别:
        (1)Session在服务器端保存信息,Cookie在客户端保存信息
        (2)Session安全性较高,Cookie保存信息容易被攻击
        (3)为了跟踪用户的会话,服务器端在创建Session后,需将SessionID交给客户端,可以采用Cookie或URL重写的方式
        (4)Session是一种服务器端技术,Session对象在服务器端创建,通常采用散列表来存储信息;Cookie是由Netscape公司发明的,用于跟踪用户会话的一种方式,Cookie是由服务器发送给客户的片段信息,存储在客户端浏览器的内存或硬盘中
10.转发和重定向的区别:
        (1)转发是直接跳转到目标界面,当前页面后续的代码不再执行;而重定向是执行完当前页面的代码,再跳转到目标页面。
        (2)转发仅发出一次请求,服务器端行为,页面跳转后URL地址栏不变。
        (3)重定向发出两次请求,客户端行为,页面跳转后URL地址栏改变。



猜你喜欢

转载自blog.csdn.net/qq_37230121/article/details/80627681
今日推荐