一、JavaWeb技术全景图
JavaWeb作为企业级Web开发的核心技术栈,包含以下关键组件:
- HTTP协议:Web通信的基石(无状态、请求-响应模式)
- Tomcat服务器:轻量级Servlet容器(默认端口8080)
- Servlet:动态请求处理核心(生命周期管理)
- Maven:项目依赖管理神器(
pom.xml配置)
graph TD
A[浏览器] -->|HTTP请求| B(Tomcat)
B --> C{Servlet}
C -->|处理逻辑| D[数据库]
C -->|生成响应| A
二、HTTP协议深度解析
2.1 协议特点
- 基于TCP的三次握手建立连接
- 无状态特性(需Cookie/Session辅助)
- 常见方法:GET/POST/PUT/DELETE
2.2 请求响应结构
GET /hello?name=Tom HTTP/1.1
Host: localhost:8080
Accept: text/html
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
<html><body>Hello Tom!</body></html>
三、Tomcat配置与优化
3.1 快速安装(Windows示例)
- 官网下载Tomcat 10
- 解压到
C:\Tomcat - 配置环境变量:
set CATALINA_HOME=C:\Tomcat set PATH=%PATH%;%CATALINA_HOME%\bin
3.2 IDEA集成指南
- 创建Maven项目:使用
maven-archetype-webapp骨架 - 配置本地Tomcat:
<!-- pom.xml添加插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> - 解决常见警告:
- "No artifacts configured":通过
Project Structure > Artifacts添加war包
- "No artifacts configured":通过
四、Servlet开发实战
4.1 生命周期详解
init():首次请求时初始化service():处理请求(自动调用doGet/doPost)destroy():服务器关闭时销毁
4.2 注解方式开发
@WebServlet("/user")
public class UserServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
// 处理表单提交
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
// 查询用户信息
}
}
4.3 传统web.xml配置
<servlet>
<servlet-name>userServlet</servlet-name>
<servlet-class>com.example.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>userServlet</servlet-name>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
五、Maven项目管理
5.1 标准目录结构
src
├── main
│ ├── java # 源代码
│ ├── resources # 配置文件
│ └── webapp # 页面资源
└── test # 测试代码
5.2 关键依赖配置
<dependencies>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- JSTL标签库 -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
六、综合案例:博客系统开发
6.1 功能设计
- 文章发布(POST请求处理)
- 评论功能(AJAX+Servlet)
- 用户认证(Filter实现)
6.2 性能优化技巧
- 连接池配置:
<!-- context.xml --> <Resource name="jdbc/blogDB" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/blogdb"/> - 线程池调优:
<!-- server.xml --> <Connector port="8080" maxThreads="200" minSpareThreads="50" acceptCount="1000"/>
七、常见问题排查
| 现象 | 解决方案 | 相关配置 |
|---|---|---|
| 404错误 | 检查URL映射/web.xml配置 | <url-pattern> |
| 中文乱码 | 设置response.setContentType | charset=UTF-8 |
| 端口冲突 | 修改server.xml | <Connector port> |
| 热部署失效 | 配置reloadable="true" | context.xml |
八、学习资源推荐
- 官方文档:
- Tomcat 10文档
- Servlet规范
- 经典书籍:
- 《Head First Servlets and JSP》
- 《Maven实战》
1528

被折叠的 条评论
为什么被折叠?



