java-web/docs/tasks/chapter04-tasks.md

96 lines
2.8 KiB
Markdown
Raw Normal View History

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中使用这个类。
- **添加错误页面**: 创建一个错误页面,在登录失败时重定向到该页面。