struts2简单案例实现登录查询

这里默认已经下载好struts2,并且了解文件中的目录结构

步骤:
1、新建web项目:”struts2_usersys”
2、导入jar包
其中包括struts包,sevlet包,jsp包和数据库连接包

其中包括struts包,sevlet包,jsp包和数据库连接包
3、配置struts2的核心控制器web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

</web-app>

4、在src下添加struts2配置文件,命名为struts.xml,且不能更改

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   <package name="user" namespace="/" extends="struts-default">
    <action name="login" class="com.sun.action.UserAction" method="login">
        <result name="success" type="redirectAction">list</result>
        <result name="login">/login.jsp</result> 
    </action>
    <action name="list" class="com.sun.action.UserAction" method="list">
        <result>/list.jsp</result>
    </action>

   </package>

</struts>

5、编写jsp文件login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <form action="login.action" method="post">
        用户名:<input type="text" name="user.name" />
        密码:<input type="password" name="user.pwd" />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

6、编写一个实体类User.java

package com.sun.entity;

public class User {
    private int id;
    private String name;
    private String pwd;
    public User() {
        super();
    }

    public User(String name, String pwd) {
        super();
        this.name = name;
        this.pwd = pwd;
    }

    public User(int id, String name, String pwd) {
        super();
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}

7、数据库连接公用类BaseDao.java

package com.sun.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class BaseDao {
    private Connection connection;
    private PreparedStatement preparedStatement;
    private ResultSet resultSet;
    private void getConnection(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/usersys";
            connection = DriverManager.getConnection(url,"root","123456");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public  void close(){
        if(resultSet != null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(preparedStatement != null){
            try {
                preparedStatement.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(connection != null){
            try {
                connection.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    //更新-----增加,修改,删除
    public int executeUpdate(String sql,Object...objects){

        try {
            this.getConnection();
            preparedStatement = connection.prepareStatement(sql);
            if(objects != null){
                for(int i=0;i<objects.length;i++){
                    preparedStatement.setObject(i+1, objects[i]);
                }
            }
            return preparedStatement.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            this.close();
        }
        return -1;
    }
    //查询
    public ResultSet executeQuery(String sql,Object...objects){
        try {
            this.getConnection();
            preparedStatement = connection.prepareStatement(sql);
            if(objects != null){
                for(int i=0;i<objects.length;i++){
                    preparedStatement.setObject(i+1, objects[i]);
                }
            }
            return resultSet = preparedStatement.executeQuery();
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
        /// this.close();
        }
        return null;
    }
}

8、编写action类UserAction.java

package com.sun.action;

import java.sql.SQLException;
import java.util.List;

import com.opensymphony.xwork2.Action;
import com.sun.entity.User;
import com.sun.service.UserService;

public class UserAction {
    private User user;
    private List<User> list;
    UserService userService = new UserService();

    public String login() throws SQLException{
        User temp = userService.login(user);
        if(temp != null){
            return Action.SUCCESS;
        }
        return Action.LOGIN;

    }
    public String list(){
        list = userService.getList();
        return Action.SUCCESS;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public List<User> getList() {
        return list;
    }

    public void setList(List<User> list) {
        this.list = list;
    }
}

9、编写服务层类UserService.java

package com.sun.service;

import java.sql.SQLException;
import java.util.List;

import com.sun.dao.UserDao;
import com.sun.entity.User;

public class UserService {
    private UserDao userDao = new UserDao();
    public User login(User u) throws SQLException{
        return userDao.login(u);
    }
    public List<User> getList(){
        return userDao.getList();
    }
}

10、编写数据连接层类UserDao.java

package com.sun.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.sun.entity.User;
import com.sun.util.BaseDao;

public class UserDao extends BaseDao{
    public User login(User u) throws SQLException{
        String sql = "select * from t_user where name = ? and pwd = ?";
        System.out.println(u.getName()+u.getPwd());
        ResultSet resultSet = this.executeQuery(sql,u.getName(),u.getPwd());
        try {
            if(resultSet.next()){
                System.out.println("synaiyu");
                return new User(resultSet.getInt(1),resultSet.getString(2),resultSet.getString(3));
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            this.close();
        }
        return null;
    }
    public List<User> getList(){
        String sql = "select * from t_user";
        List<User> list = new ArrayList<>();
        ResultSet resultSet = this.executeQuery(sql);
        try {
            while(resultSet.next()){
                list.add(new User(resultSet.getInt(1),resultSet.getString(2),resultSet.getString(3)));
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            this.close();

        }
        return list;
    }
}

11、创建数据库
这里写图片描述
12、创建返回数据jsp list.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
    <table width=80% align=center>
        <tr>
            <td>id</td>
            <td>姓名</td>
            <td>密码</td>
        </tr>
        <c:forEach items="${list}" var="bean">
        <tr>
            <td> ${bean.id }</td>
            <td> ${bean.name }</td>
            <td> ${bean.pwd }</td>
        </tr>
        </c:forEach>

    </table>
</body>
</html>

13、运行login.jsp
这里写图片描述

结果
这里写图片描述

我的目录结构
这里写图片描述

根据目录结构简单说一下struts2的执行流程:
首先通过login.jsp发起请求,给Tomcat服务器,Tomcat将请求给核心配置文件web.xml通过过滤器处理,解析struts.xml文件,通过action调用com.sun.action.UserAction.login.java方法,通过业务处理层访问数据连接层访问数据,访问到数据在返回给login方法,成功后转发给下一个action(list)处理,同样是通过业务处理层访问数据连接层访问数据,访问到数据在返回到list供前端做页面展示。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值