JSP+Servlet核心知识点详解
需积分: 13 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模式匹配进行提交。
2021-10-02 上传
2017-05-23 上传
2021-11-11 上传
2018-11-28 上传
2020-06-15 上传
2012-11-26 上传
2013-12-08 上传
2018-05-16 上传
2023-09-22 上传
juxie36xiaoshi
- 粉丝: 0
- 资源: 4
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章