Servlet的url-pattern
url-pattern可以使用以下三种方式
1,确切路径匹配,也就是给出确定的路径 xxx/xxxx
2,模糊路径匹配,也就是指给出一部分路径,xxxx/*,他会匹配确定路径,也就是xxxx/a 或者是xxxx/b都是可以匹配的
3,扩展名匹配,也就是会匹配扩展名,只要是扩展名相同就匹配,xxx.xxx *.xx
注意:扩展名匹配和确切路径匹配不能放在一起使用,也就是不能写成 xxxx/xxxx/xxx.xx,但是可以用
*.xxx。
ServletRequest对象的三个返回路径的方法
getContextPath()获得应用的路径,用动态获取应用路径
getServletPath()获得Servlet路径,也就是form中的action,如果使用确切路径那么就会是这个Servlet配置的url-pattern。
getPathInfo()使用模糊路径匹配时会返回匹配模糊部分。
注意:在html的form表单的action中,如果使用了扩展名匹配,一定要写明/xxxxx/xxx.xx,不要写成/xxxx/*.xx,在form的action中要尽量使用绝对路径,也就是要用 应用名/xxx.xx或者应用名/xxx。
SingleThreadModel接口
1) 如果希望禁止多线程访问,可以让Servlet使用SingleThreadModel接口: public class YourServlet extends HttpServlet implements SingleThreadModel{ ... }2) 使用此接口,系统将保证不会存在多个请求线程同时访问Servlet的单个实例。但是仍然需要同步对存储在Servlet外部的类变量或共享字段的访问。3) 如Servlet频繁被访问,则Servlet访问的同步将严重影响性能(延时)。
ServletRequest对象的生命周期就是在service()方法中,除了forward(...,...)方法将这个请求对象转发给其他的Servlet。
Session(会话)和Cookie
Session对象用来解决客户端发送多个请求时来用户请求信息的存储问题,但是他和ServletRequest对象是不同的,他会在有需要时创建,但是他的生命周期会比请求对象要长。Session对象的生命周期也是有限制的,如果长时间的没有访问,就会销毁掉Session对象,可以通过Session对象的
setAttribute(String name, Object o) 和getAttribute(String name)来存取数据信息。Session是用户级的对象。
public void service(ServletRequest request,ServletResponse response){
String user = request.getParameter("user");
String pass = request.getParameter("pass");
HttpSession session = request.getSession(true);//使用请求对象来创建Session
session.setAttribute("username", user);
session.setAttribute("passwd", pass);
}
getSession(true)就表示如果Session不存在就创建一个新的Session,并把Session的标识SessionID写到Cookie中,如果存在就是用这个Session。getSession(false)就是在Session不存在时不会创建新Session而是返回null。如果使用getSession()方法,就等同于getSession(true)。
注意:ServletRequest对象适用于传输大量的数据,因为其生命周期比较短,可以有效的节省内存资源。
大数据量的传输或保存不适合使用Session空间。
Cookie,是记录用户的Session信息,也可以记录用户的请求信息,也就是SessionID,来分辨哪一个用户是否登陆过。在每次登陆时,还会将Cookie发送回服务器端,Cookie是用来跟踪Session的。
public void service(ServletRequest request,ServletResponse response){
String user = request.getParameter("user");
String pass = request.getParameter("pass");
Cookie userCookie = new Cookie("user", user);
userCookie.setMaxAge(60 * 60 * 24 * 365);//设置Cookie的最大有效期,秒为单位
Cookie passCookie = new Cookie("pass", pass);
passCookie.setMaxAge(60 * 60 * 24 * 365);
response.addCookie(userCookie);
response.addCookie(passCookie);
}
HttpServletResponse类
HttpServletResponse是用来回应用户的操作的,它可以实现页面的重定向。
sendRedirect(String location),是用这个方法指定要访问的servlet,其参数是Servlet的url-pattern
如果使用了重定向,就不会保留原有的request对象。
分享到:
相关推荐
2. 在实验完成时需要向辅导教师报告,以记录实验成绩,实验成绩以百分制记录;实验不得抄袭,否则不记成绩。 提示: 1. 需要实现一个静态登录页面及一个servlet 2. 对于聊天信息的保存可能用到servletcontext 3. ...
4. **会话管理**:为了保持用户状态,JSP和Servlet可以使用session对象存储用户信息,如登录状态、权限等。 5. **安全性**:对敏感数据如学生信息的加密处理,防止SQL注入攻击,以及采用HTTPS协议确保数据传输的...
1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。信息窗口显示发言人的姓名以及发言的内容。在进入聊天室之前需要进行登录,即输入用户名。 2. 在实验完成时需要向辅导...
4.功能点描述: (1)学生 查看个人信息、查看个人的晚归记录、填写请假单、查看请假的审核情况 (2)宿管员(有待完善) 基础信息管理、查看个人信息 (3)辅导员 审核请假单、导出学生晚归记录、查看个人信息、查看...
- **项目辅导视频、论文等资料**:可能包含项目开发过程的教程、设计文档、相关论文等,帮助理解和学习项目。 - **数据库**:包含数据库脚本或已有的数据库文件,用于恢复和操作系统的数据环境。 - **源代码**:...
6. **权限控制**:根据用户角色(学生、班主任、辅导员、教务主任等)设定不同权限,防止越权操作。 综上所述,"JSP+Servlet学生请假系统"是一个典型的Web应用示例,涉及Web开发的基础技术、数据库操作、MVC设计...
《基于JavaEE、原生Servlet和MySQL的酒店管理系统设计与...项目的"项目辅导视频"和"论文等资料"可以进一步深入学习各个模块的具体实现细节,而"源代码"则可供开发者参考和学习,"项目截图"展示了系统的实际运行效果。
4. **Servlet和JSP**:作为Java Web开发的重要组成部分,Servlet用于处理HTTP请求,而JSP则用于生成动态网页内容。两者结合使用,可以实现前后端分离,提高程序的可读性和可维护性。 5. **Spring框架**:Spring是...
Java认证是全球认可的Java程序员技能评估标准,2009年的Java认证辅导资料涵盖了当时最新的Java技术,旨在帮助考生顺利通过考试并提升其Java编程能力。这些资料可能包括了Oracle Certified Associate (OCA), Oracle ...
4. 权限管理:设置不同角色(如管理员、辅导员等)的权限,确保数据安全。 5. 报表统计:生成各类统计报表,如空余床位、住宿率等。 【开发工具与环境】 开发过程中,可能使用了Eclipse或IntelliJ IDEA作为集成开发...
资源名字:基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(源码+文档)_JAVAEE_Servlet_旅游网站 资源类型:项目全套源码+文档+辅导视频 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合...
- **项目辅导视频**:这部分资源可能包含教程或讲解视频,帮助学习者理解项目的实现过程和关键概念。 - **论文等资料**:可能包含项目的设计理念、技术选型的分析报告等。 - **数据库**:包含了项目所需的表结构...
#### Servlet辅导 Servlet是一种Java技术,用于扩展服务器的功能,特别是处理HTTP请求和响应。它相当于服务器端的小应用程序,可以接收客户端发送的请求,执行相应的业务逻辑,并返回响应结果。Servlet生命周期包括...
城市公交查询系统介绍 我国许多城市都有一些颇具设计感的公交站台,但我们却很难在这里找到我们出行需要的信息。...5.训练检索文献资料和利用文献资料的能力; 6.训练撰写技术文档与学位论文的能力。
项目辅导视频、论文等资料可以进一步指导开发过程,帮助理解和解决问题。数据库文件和源代码提供了具体实现细节,通过阅读和分析这些内容,可以深入学习到实际开发中的技巧和最佳实践。项目截图则能直观展示系统功能...
4. **用户界面**:用户界面通常包含登录、注册、辅导员信息管理、考评标准设置、考评结果查询等功能。JSP页面结合HTML、CSS和JavaScript来实现交互和样式设计。 5. **权限控制**:为了保证数据安全,系统会实现用户...
4. **数据库设计**:系统中的数据库设计包括柜员表、业务类型表、业务量表和绩效考核规则表等,通过合理的ER模型设计,确保数据的一致性和完整性。 5. **业务绩效考核**:系统实现对柜员的业务量统计,包括不同类型...