JSP+Servlet核心知识点详解

需积分: 13 1 下载量 87 浏览量 更新于2024-09-12 收藏 45KB DOC 举报
"该大作业主要涵盖了JSP和Servlet的核心知识点,包括JSP动作指令、内置对象、会话管理、防止重复提交、安全防护、用户退出功能、避免重复登录、DAO设计模式、MVC架构以及Servlet的生命周期和注册方式。" 1. **JSP动作指令** 是一种用于在JSP页面中插入动态内容的方式,它们不是Java代码,而是XML标签。常见的JSP动作指令有`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`等,它们分别用于包含其他页面、转发请求和传递参数。 2. **JSP内置对象** 是JSP容器自动创建并提供给开发者使用的对象,无需显式实例化。主要有九种:`request`, `response`, `session`, `application`, `pageContext`, `out`, `config`, `page`, `exception`。其中,`request`和`response`用于处理HTTP请求和响应,`session`和`application`则用于会话管理。 3. **获取session和application** 的代码如下: ```java HttpSession session = request.getSession(); ServletContext application = super.getServletContext(); ``` 通过`HttpServletRequest`的`getSession()`方法获取session,`GenericServlet`的`getServletContext()`方法获取application。 4. **防止重复提交** 的关键在于生成唯一标识,并存储在session和页面中。提交时比较两者,一致则删除session中的标识,不同则阻止提交。 5. **防止疯狂猜密码** 的策略通常包括限制尝试次数、使用验证码、设置IP黑名单等。具体实现需结合实际应用。 6. **实现“用户退出”** ,通常清除session中的用户信息,重定向到登录页: ```java session.invalidate(); response.sendRedirect("login.jsp"); ``` 7. **避免重复登录** 可以在session中设置已登录标记,检测到重复登录请求时拒绝。 8. **DAO(数据访问对象)** 是一种设计模式,主要用于封装数据库操作,将业务逻辑与数据访问逻辑分离。DAO中通常定义与数据库交互的方法,如增删查改。 9. **MVC(模型-视图-控制器)** 是一种软件架构模式,用于分离业务逻辑、用户界面和应用程序控制。用户请求先由控制器处理,它调用模型进行业务逻辑,最后更新视图显示结果。例如,用户点击“查看商品”,控制器接收到请求,调用商品模型获取商品信息,再将结果显示在页面上。 10. **Servlet的生命周期** 包括构造方法、初始化(init)、服务(service)、销毁(destroy)。Servlet的实例化和初始化通常在首次请求时完成,service方法处理每个请求,完成后可能被垃圾回收,服务器关闭时销毁。 11. **Servlet在web.xml中的注册** 是通过`<servlet>`和`<servlet-mapping>`标签完成的,`<servlet-name>`定义Servlet的名称,`<servlet-class>`指定Servlet的全限定类名,`<url-pattern>`定义了请求URL与Servlet的映射关系。表单提交时,根据`<form>`标签的`action`属性对应的URL路径和`<servlet-mapping>`中的URL模式匹配进行提交。