Servlet中的一些笔记(cookie和seiion的区别、请求转发和重定向、request和servletContent)
1、cookie
- 从请求中拿到cookie信息
- 服务器响应给客户端cookie
- 一个Cookie只能保存一个信息;
- 一个web站点可以给浏览器发送多个cookie,最多存放20个cookie;
- Cookie大小有限制4kb;
- 300个cookie浏览器上限
- 删除Cookie:不设置有效期,关闭浏览器,自动失效,设置有效期时间为 0 ;
2、session
- 注销Session,SessionID也会清除,不过又会立刻创建一个新的。
- 注销语句:session.invalidate();
在web.xml文件中设置Session失效时间.
<session-config>
<!--设置15分钟失效-->
<session-timeout>15</session-timeout>
</session-config>
3、session和cookie的区别
- Cookie是把用户的数据写给用户的浏览器,浏览器保存 (可以保存多个)
- Session把用户的数据写到用户独占Session中,服务器端保存 (保存重要的信息,减少服务器资源的浪费)
- Session对象由服务器创建;
4、request
- HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器
- HTTP请求中的所有信息会被封装到HttpServletRequest
- 通过这个HttpServletRequest的方法,获得客户端的所有信息
5、Servlet
6.1、Servlet简介
Servlet就是sun公司开发动态web的一门技术
Sun在这些API中提供一个接口叫做: Servlet,
如果你想开发一个Servlet程序,只需要完成两个小步骤:
编写一个类,实现Servlet接口
把开发好的Java类部署到web服务器中。
把实现了Servlet接口的Java程序叫做,Servlet。
Sun公司有直接的实现了servlet接口的类,我们直接继承就行。
分别为:HttpServlet,GenericServlet
关系为:GenericServlet抽象类实现了Servlet接口,然后HttpServlet类继承了
GenericServlet抽象类
写完类之后,要在web.xml的web-app里面注册servlet:
<!--注册servlet-->
<servlet>
<servlet-name>hello</servlet-name>//和下面的要一样,通过名字访问
<servlet-class>com.tang.servlet.HelloServlet</servlet-class>//类路径
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>//因为是url,所有一定要加一个/(
也可以用*.tang等等前缀或者后缀表达式,*在前面的话,不能有/。
或者用/*,表示通配(*表示任意))
</servlet-mapping>
优先级问题:
如果注册了多个servlet,则有实际路径的优先级大于通配的优先级。
6、servletcontext相当于asp.net的session,可以在多个servlet之间共享数据。
7、(父)外面用普通的maven,(子)里面用webpp 模板
8、在webapps中创建文件夹,文件夹中包含web.xml文件首先,然后在上一级目录下添加网页文件即可,通过8080域名+文件夹名字访问(或者再加首页名称)
9、请求转发和重定向的区别
请求转发:
有A、B、C三个对象。A要获取的资源只有C有,而A只能联系到B,B能
联系到C,所以A通过联系B,让B把信息转发给C,然后通过B获得C的资源,
路径没有发生变化。
重定向:有A、B、C三个对象。A要获取的资源只有C有,而A只能联系到B,B能
联系到C。A联系B想要获取C的资源,B把C的联系方式告诉A,让A直接
去联系C获取资源,路径发生了变化。
浙公网安备 33010602011771号