|
@@ -112,19 +112,19 @@ xml文件可以配置
|
|
|
1. 构建一个主工程
|
|
|
2. 关于maven父子工程的理解:
|
|
|
父项目中会有一个
|
|
|
-```
|
|
|
+```xml
|
|
|
<modules>
|
|
|
<module>servlet01</module>
|
|
|
</modules>
|
|
|
```
|
|
|
子项目中会有一个
|
|
|
-```
|
|
|
+```xml
|
|
|
<parent></parent>
|
|
|
```
|
|
|
父项目中的java子项目可以直接引用
|
|
|
|
|
|
3. 编写一个servlet类,继承HttpServlet接口
|
|
|
-```
|
|
|
+```java
|
|
|
public class HelloServlet extends HttpServlet {
|
|
|
@Override
|
|
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
@@ -136,7 +136,7 @@ public class HelloServlet extends HttpServlet {
|
|
|
```
|
|
|
4. 为什么编写Servlet的映射
|
|
|
我们写的是JAVA程序,但是需要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务中注册我们写的servlet,还需给他一个浏览器能够访问的路径
|
|
|
-```
|
|
|
+```xml
|
|
|
<servlet>
|
|
|
<servlet-name>Hello</servlet-name>
|
|
|
<servlet-class>com.servlet.HelloServlet</servlet-class>
|
|
@@ -157,14 +157,14 @@ Servlet是由web服务器调用,web服务器在收到浏览器请求之后,
|
|
|
### 4.4、Mapping问题
|
|
|
|
|
|
1. 一个Servlet可以指定一个映射路径
|
|
|
-```
|
|
|
+```xml
|
|
|
<servlet-mapping>
|
|
|
<servlet-name>Hello</servlet-name>
|
|
|
<url-pattern>/hello</url-pattern>
|
|
|
</servlet-mapping>
|
|
|
```
|
|
|
2. 一个Servlet可以指定多个映射路径
|
|
|
-```
|
|
|
+```xml
|
|
|
<servlet-mapping>
|
|
|
<servlet-name>Hello</servlet-name>
|
|
|
<url-pattern>/hello1</url-pattern>
|
|
@@ -175,14 +175,14 @@ Servlet是由web服务器调用,web服务器在收到浏览器请求之后,
|
|
|
</servlet-mapping>
|
|
|
```
|
|
|
3. 一个Servlet可以指定通用映射路径------servlet优先级较高,会覆盖默认请求
|
|
|
-```
|
|
|
+```xml
|
|
|
<servlet-mapping>
|
|
|
<servlet-name>Hello</servlet-name>
|
|
|
<url-pattern>/hello/*</url-pattern>
|
|
|
</servlet-mapping>
|
|
|
```
|
|
|
4. 指定一些后缀或者前缀
|
|
|
-```
|
|
|
+```xml
|
|
|
<servlet-mapping>
|
|
|
<servlet-name>Hello</servlet-name>
|
|
|
<!--*前面不能加项目映射路径-->
|
|
@@ -190,7 +190,7 @@ Servlet是由web服务器调用,web服务器在收到浏览器请求之后,
|
|
|
</servlet-mapping>
|
|
|
```
|
|
|
5. 默认请求路径------少用
|
|
|
-```
|
|
|
+```xml
|
|
|
<servlet-mapping>
|
|
|
<servlet-name>Hello</servlet-name>
|
|
|
<url-pattern>/*</url-pattern>
|
|
@@ -205,7 +205,7 @@ web容器在启动的时候,他会为每个web程序都创建一个对应的Se
|
|
|
#### 4.5.1、共享数据
|
|
|
|
|
|
servlet中保存的数据,在另外的servlet可以拿到。
|
|
|
-```
|
|
|
+```java
|
|
|
ServletContext servletContext = this.getServletContext();
|
|
|
servletContext.setAttribute("userName", userName);
|
|
|
String userName = (String) servletContext.getAttribute("userName");
|
|
@@ -232,8 +232,8 @@ this.getServletContext().getRequestDispatcher("/gp").forward(req,resp);
|
|
|
|
|
|
#### 4.5.4、读取资源文件
|
|
|
|
|
|
-maven由于他的约定大于喷子hi,我们写的配置文件,可能无法被到处或者生效,解决方法
|
|
|
-```
|
|
|
+maven由于他的约定大于配置,我们写的配置文件,可能无法被导出或者生效,解决方法
|
|
|
+```xml
|
|
|
<build>
|
|
|
<resources>
|
|
|
<resource>
|
|
@@ -286,7 +286,7 @@ webn服务器接收到客户端的http请求,针对请求,分别创建一个
|
|
|

|
|
|
常见场景:
|
|
|
* 用户登录
|
|
|
-```
|
|
|
+```java
|
|
|
// 需要设置改项目的路径
|
|
|
resp.setHeader("Location", "/r/image");
|
|
|
resp.setStatus(HttpServletResponse.SC_FOUND);
|
|
@@ -343,7 +343,7 @@ session
|
|
|
|
|
|
1. 从请求中拿到cookie信息
|
|
|
2. 服务器响应给客户端cookie
|
|
|
-```
|
|
|
+```java
|
|
|
Cookie[] cookies = req.getCookies();
|
|
|
```
|
|
|
3. 一般会保存在本地目录下
|
|
@@ -646,7 +646,7 @@ public class People {
|
|
|
|
|
|

|
|
|
用户直接访问控制层,控制层直接操作数据库;
|
|
|
-```
|
|
|
+```shell
|
|
|
servlet--CRUD--->数据库
|
|
|
弊端:程序十分臃肿,不利于维护
|
|
|
servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码
|
|
@@ -851,7 +851,7 @@ public class OnlineCountListener implements HttpSessionListener {
|
|
|
**事务**
|
|
|
要么都成功,要么都失败!
|
|
|
ACID原则:保证数据的安全
|
|
|
-```
|
|
|
+```shell
|
|
|
开启事务
|
|
|
事务提交 commit
|
|
|
事务回滚 rollback
|