### JavaWeb基础总结
在JavaWeb开发领域,掌握基本概念和技术是至关重要的。本文将对JSP、Servlet以及MVC架构进行深入浅出的讲解,旨在帮助初学者快速理解并运用这些技术。
#### 1. HTTP协议与客户端交互
JavaWeb应用通过HTTP协议与客户端进行通信。HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于从万维网服务器传输超文本到本地浏览器的传输协议。客户端(通常是浏览器)通过发送HTTP请求来获取服务器上的资源。服务器接收到请求后,处理该请求并返回一个响应给客户端。
#### 2. Tomcat服务器
Tomcat是一个开源的Servlet容器,可以作为JavaWeb应用的基础环境。默认情况下,Tomcat监听8080端口。部署一个Servlet到Tomcat中,首先需要编写一个Servlet类,并在`WEB-INF/web.xml`文件中配置该Servlet。例如:
```xml
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>example1.loginservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/ttt/wwww</url-pattern>
</servlet-mapping>
```
上述配置表示:名为`abc`的Servlet映射到了URL路径`/ttt/wwww`。可以通过以下URL访问该Servlet:
```
http://192.168.3.123:8080/项目名/ttt/wwww
```
接下来,实现Servlet类中的`doGet`和`doPost`方法,这两个方法分别处理GET和POST请求。当用户通过浏览器发送请求时,Tomcat会根据配置找到对应的Servlet,并调用相应的方法来处理请求。
```java
public void doGet(HttpServletRequest request, HttpServletResponse response) {
// 设置响应类型
response.setContentType("text/html;charset=GBK");
// 获取响应输出流
PrintWriter out = response.getWriter();
// 向客户端输出HTML
out.println("<html>");
String str = "abc";
out.println("<h1>" + str + "</h1>");
}
```
#### 3. HttpServletRequest和HttpServletResponse
`HttpServletRequest`对象封装了客户端发送的所有请求数据,包括请求参数等;而`HttpServletResponse`对象用于向客户端发送响应。通过这两个对象,我们可以实现客户端与服务器之间的交互。
#### 4. Session管理
Session是一种存储用户状态的技术,用于跟踪用户的会话状态。在Web应用中,每个用户的会话都是独立的,因此需要通过Session来维护这种状态。
```java
// 创建Session对象
HttpSession session = request.getSession();
// 设置Session的过期时间
session.setMaxInactiveInterval(600); // 10分钟
```
以上代码创建了一个Session,并设置了它的过期时间为10分钟。此外,还可以通过`invalidate()`方法立即使Session失效。
#### 5. 表单提交
表单提交通常有两种方式:GET和POST。GET方式通常用于简单的查询操作,如搜索功能;而POST方式则用于数据提交操作,如登录或注册等。
```html
<form method="post" action="/项目名/ttt/wwww">
<input type="text" name="name" value="tom"/>
<input type="text" name="age" value="123"/>
<input type="submit" value="提交"/>
</form>
```
#### 6. URL重写
URL重写主要用于解决Cookie禁用情况下的会话追踪问题。它将Session ID附加到URL上,以便服务器能够识别不同的用户。
#### 7. JSP页面
JSP(JavaServer Pages)是一种基于Java技术的动态网页技术。它允许开发者将静态内容与动态内容混合在一起,从而创建复杂的Web应用程序。
- **Page指令**:`<%@ page %>`指令用于设置JSP页面的属性。
- `contentType`: 定义页面的MIME类型和字符编码。
- `import`: 导入所需的类或包。
- `pageEncoding`: 指定页面的编码格式。
- `errorPage`: 指定错误页面。
- **Include指令**:`<%@ include %>`用于包含另一个文件。
- **Taglib指令**:`<%@ taglib %>`用于引入自定义标签库。
#### 8. JSP脚本元素
- `<% %>`:用于执行Java表达式或语句。
- `<%! %>`:声明局部变量。
- `<%= %>`:输出表达式的值。
### 小结
本文从HTTP协议入手,介绍了JavaWeb的基本组成要素,包括Servlet、JSP以及MVC模式。通过这些基础知识的学习,读者可以更好地理解和构建JavaWeb应用。希望本文能够帮助大家建立起JavaWeb开发的基础框架,并为进一步学习打下坚实的基础。