分析路3-12所不公司网站首页效果,使用语义化标签搭建该网负的HITML结构(不考虑 CSS 样式)。
时间: 2024-05-06 16:20:46 浏览: 139
本实现基于JavaEE的SSM框架,使用MySQL数据库。
1. 创建数据库
在MySQL中创建一个名为`ssm_login`的数据库,执行以下SQL语句:
```sql
CREATE DATABASE ssm_login;
```
在该数据库中创建一个名为`user`的表,执行以下SQL语句:
```sql
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 配置Struts2
在项目中添加Struts2依赖,例如使用Maven,在`pom.xml`中添加以下依赖:
```xml
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.26</version>
</dependency>
```
在`web.xml`中添加Struts2的过滤器和监听器:
```xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
```
在`struts.xml`中配置Struts2的Action和Result:
```xml
<struts>
<constant name="struts.devMode" value="true" />
<package name="login" extends="struts-default">
<action name="login" class="com.example.action.LoginAction">
<result name="success" type="tiles">welcome</result>
<result name="input" type="tiles">login</result>
</action>
</package>
</struts>
```
其中,`LoginAction`为登录操作的Action,`welcome`为登录成功后跳转的页面,`login`为登录页面。
3. 编写Action
在`com.example.action`包下创建`LoginAction`类,代码如下:
```java
package com.example.action;
import com.example.model.User;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.stereotype.Controller;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
@Controller
@ParentPackage("struts-default")
@Namespace("/")
public class LoginAction extends ActionSupport {
private String username;
private String password;
private List<User> userList = new ArrayList<>();
@Action(value = "login", results = {
@Result(name = "success", location = "/WEB-INF/views/welcome.jsp"),
@Result(name = "input", location = "/WEB-INF/views/login.jsp")
})
public String login() {
if ("admin".equals(username) && "123456".equals(password)) {
HttpSession session = ServletActionContext.getRequest().getSession();
Integer count = (Integer) session.getAttribute("count");
count = count == null ? 1 : count + 1;
session.setAttribute("count", count);
session.setAttribute("username", username);
return SUCCESS;
} else {
addActionError("用户名或密码错误!");
return INPUT;
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
}
```
其中,`login()`方法为登录操作,如果用户名和密码都为`admin`和`123456`,则将用户名和登录次数存入Session中,跳转到`welcome.jsp`页面;否则向页面传递错误信息,跳转回`login.jsp`页面。
4. 编写JSP页面
在`webapp`目录下创建`WEB-INF/views`目录,用于存放JSP页面。创建`login.jsp`和`welcome.jsp`页面,代码如下:
login.jsp
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<s:form action="login" method="post">
<s:textfield name="username" label="用户名" />
<s:password name="password" label="密码" />
<s:submit value="登录" />
</s:form>
<s:if test="hasActionErrors()">
<div style="color: red">
<s:actionerror />
</div>
</s:if>
</body>
</html>
```
welcome.jsp
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<title>欢迎页面</title>
</head>
<body>
<div>欢迎您,<s:property value="#session.username" />!</div>
<div>您是本系统的第<s:property value="#session.count" />个登录用户。</div>
</body>
</html>
```
其中,`login.jsp`页面使用了Struts2的标签,简化了表单的编写;`welcome.jsp`页面使用了OGNL表达式,直接获取Session中的用户名和登录次数。
5. 运行程序
启动Tomcat服务器,访问`http://localhost:8080/ssm_login/login`,即可进入登录页面。输入正确的用户名和密码,即可跳转到欢迎页面,并显示登录用户的用户名和登录次数。如果输入错误的用户名或密码,页面会提示错误信息,重新输入即可。
阅读全文