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获取资源,路径发生了变化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)