java-web/docs/tasks/chapter04-tasks.md
2024-10-16 11:41:59 +08:00

98 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 4. 基于Java的Web应用后端开发技术
## 任务目标
- 实现一个简单的用户登录功能。
- 使用Servlet技术处理用户的登录请求。
- 理解MVC架构中的模型、视图和控制器的作用。
- 学习如何在Servlet中处理HTTP请求和响应。
## 任务描述
使用Servlet技术来实现一个用户登录功能。用户首先需要在登录页面输入用户名和密码然后Servlet会验证这些信息是否正确。如果登录成功则显示欢迎信息如果失败则显示错误提示。
## 技术栈
- Java Servlet
- HTML
- JavaBean (可选)
- Apache Tomcat 作为Servlet容器
#### 任务步骤
1. **创建项目**
- 使用IntelliJ IDEA创建一个新的Java项目。
- 根据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文件输出路径等。
2. **编写登录页面 (`login.jsp`和`welcome.jsp`)**
3. **创建Servlet (`LoginServlet.java`)**
4. **配置Servlet (`web.xml`)**
```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>
```
5. **部署项目**
- 将项目导出为WAR文件。
在idea中打开控制台
```shell
cd webapp
jar cvf my.war -C . .
```
- 安装Tomcat。
https://tomcat.apache.org/download-90.cgi
- 将my.war文件放置在Tomcat的`webapps`目录下。
- 启动Tomcat
```shell
cd <自己的tomcat解压所在的目录/bin>
.\startup.bat
```
6. **测试**
- 访问 `http://localhost:8080/my/login.jsp`
- 输入用户名和密码,提交表单
#### 扩展任务
- **使用JavaBean**: 创建一个`User`类来封装用户名和密码并在Servlet中使用这个类。
- **添加错误页面**: 创建一个错误页面,在登录失败时重定向到该页面。