2024-08-08 00:53:48 +08:00
|
|
|
|
# 4. 基于Java的Web应用后端开发技术
|
|
|
|
|
|
|
|
|
|
## 任务目标
|
|
|
|
|
- 实现一个简单的用户登录功能。
|
|
|
|
|
- 使用Servlet技术处理用户的登录请求。
|
|
|
|
|
- 理解MVC架构中的模型、视图和控制器的作用。
|
|
|
|
|
- 学习如何在Servlet中处理HTTP请求和响应。
|
|
|
|
|
|
|
|
|
|
## 任务描述
|
|
|
|
|
使用Servlet技术来实现一个用户登录功能。用户首先需要在登录页面输入用户名和密码,然后Servlet会验证这些信息是否正确。如果登录成功,则显示欢迎信息;如果失败,则显示错误提示。
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
- Java Servlet
|
|
|
|
|
- HTML
|
|
|
|
|
- JavaBean (可选)
|
|
|
|
|
- Apache Tomcat 作为Servlet容器
|
|
|
|
|
|
|
|
|
|
#### 任务步骤
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. **创建项目**
|
|
|
|
|
- 使用IntelliJ IDEA创建一个新的Java项目。
|
2024-10-16 11:41:59 +08:00
|
|
|
|
- 根据servlet项目要求,创建目录和文件。
|
|
|
|
|
```markdown
|
|
|
|
|
project_name
|
|
|
|
|
|-- src
|
|
|
|
|
|-- webapp
|
|
|
|
|
|-- WEB-INF
|
|
|
|
|
|-- classes
|
|
|
|
|
|-- (源码编译后的class文件)
|
|
|
|
|
|-- lib
|
|
|
|
|
|-- (第三方库的jar文件)
|
|
|
|
|
|-- web.xml
|
|
|
|
|
|-- index.jsp
|
|
|
|
|
|-- other.jsp
|
|
|
|
|
|-- css
|
|
|
|
|
|-- style.css
|
|
|
|
|
|-- js
|
|
|
|
|
|-- script.js
|
|
|
|
|
|-- images
|
|
|
|
|
|-- logo.png
|
|
|
|
|
```
|
|
|
|
|
- 在IDEA中对项目进行必要的设置,例如:JDK版本、class文件输出路径等。
|
2024-08-08 00:53:48 +08:00
|
|
|
|
|
2024-10-16 11:41:59 +08:00
|
|
|
|
2. **编写登录页面 (`login.jsp`和`welcome.jsp`)**
|
2024-08-08 00:53:48 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3. **创建Servlet (`LoginServlet.java`)**
|
|
|
|
|
|
|
|
|
|
4. **配置Servlet (`web.xml`)**
|
|
|
|
|
|
2024-10-16 11:41:59 +08:00
|
|
|
|
```xml
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
|
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
|
|
|
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
|
|
|
|
|
id="WebApp_ID" version="3.1">
|
|
|
|
|
|
|
|
|
|
<servlet>
|
|
|
|
|
<servlet-name>com.lk.webapp.servlets.LoginServlet</servlet-name>
|
|
|
|
|
<servlet-class>com.lk.webapp.servlets.LoginServlet</servlet-class>
|
|
|
|
|
</servlet>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<servlet-mapping>
|
|
|
|
|
<servlet-name>com.lk.webapp.servlets.LoginServlet</servlet-name>
|
|
|
|
|
<url-pattern>/LoginServlet</url-pattern>
|
|
|
|
|
</servlet-mapping>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</web-app>
|
|
|
|
|
```
|
2024-08-08 00:53:48 +08:00
|
|
|
|
5. **部署项目**
|
|
|
|
|
- 将项目导出为WAR文件。
|
2024-10-16 11:41:59 +08:00
|
|
|
|
在idea中,打开控制台:
|
2024-08-08 00:53:48 +08:00
|
|
|
|
```shell
|
2024-10-16 11:41:59 +08:00
|
|
|
|
cd webapp
|
|
|
|
|
jar cvf my.war -C . .
|
2024-08-08 00:53:48 +08:00
|
|
|
|
```
|
|
|
|
|
- 安装Tomcat。
|
|
|
|
|
https://tomcat.apache.org/download-90.cgi
|
|
|
|
|
|
2024-10-16 11:41:59 +08:00
|
|
|
|
- 将my.war文件放置在Tomcat的`webapps`目录下。
|
|
|
|
|
- 启动Tomcat
|
|
|
|
|
```shell
|
|
|
|
|
cd <自己的tomcat解压所在的目录/bin>
|
|
|
|
|
.\startup.bat
|
|
|
|
|
```
|
2024-08-08 00:53:48 +08:00
|
|
|
|
|
|
|
|
|
6. **测试**
|
|
|
|
|
- 访问 `http://localhost:8080/my/login.jsp`。
|
2024-10-16 11:41:59 +08:00
|
|
|
|
- 输入用户名和密码,提交表单
|
2024-08-08 00:53:48 +08:00
|
|
|
|
|
|
|
|
|
#### 扩展任务
|
|
|
|
|
- **使用JavaBean**: 创建一个`User`类来封装用户名和密码,并在Servlet中使用这个类。
|
|
|
|
|
- **添加错误页面**: 创建一个错误页面,在登录失败时重定向到该页面。
|