【 SSH 整合】Spring、Struts、Hibernate基本整合

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd ">

    <!-- 加载db.properties文件 -->
    <bean id="config" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="locations" value="classpath*:*.properties"/>
    </bean>

    <!-- 配置配置数据库信息(替代mybatis的配置文件conf.xml) -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${driver}"></property>
        <property name="url" value="${url}"></property>
        <property name="username" value="${username}"></property>
        <property name="password" value="${password}"></property>
        <property name="initialSize" value="${initialSize}"></property>
        <property name="maxActive" value="${maxActive}"></property>
        <property name="maxIdle" value="${maxIdle}"></property>
        <property name="minIdle" value="${minIdle}"></property>
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!-- //加载实体类的映射文件位置及名称 -->
        <property name="mappingLocations" value="classpath:k/bean/*.hbm.xml"></property>
        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
    </bean>

    <!--事务-->
    <bean id="txManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <!--开启注解配置-->
    <context:annotation-config/>

    <!--配置 action-->
    <bean name="/login" class="k.action.LoginAction" scope="prototype"/>
    <bean name="/employee" class="k.action.EmployeeAction" scope="prototype"/>

    <!--配置 Service-->
    <bean name="testService" class="k.service.TestService"/>
    <bean name="employeeService" class="k.service.impl.EmployeeServiceImpl"/>
    <bean name="departmentService" class="k.service.impl.DepartmentServiceImpl"/>

</beans>

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
        "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>

    <form-beans>
        <form-bean name="employeeForm" type="k.form.EmployeeForm">
            <form-property name="id" type="java.lang.Integer"></form-property>
            <form-property name="name" type="java.lang.String"></form-property>
            <form-property name="password" type="java.lang.String"></form-property>
        </form-bean>
    </form-beans>

    <global-forwards>
        <forward name="ok" path="/WEB-INF/jsp/ok.jsp"></forward>
        <forward name="err" path="/WEB-INF/jsp/err.jsp"></forward>
    </global-forwards>

    <action-mappings>
        <action name="employeeForm" path="/login" parameter="action" type="k.action.LoginAction"
                scope="request" attribute="employeeForm" input="index.jsp" validate="false">
            <forward name="main" path="/WEB-INF/jsp/main.jsp"></forward>
            <forward name="loginJsp" path="/WEB-INF/jsp/login.jsp"></forward>
        </action>
        <action name="employeeForm" path="/employee" parameter="action" type="k.action.EmployeeAction"
                scope="request" attribute="employeeForm" input="index.jsp" validate="false">
            <forward name="addEmployeeUI" path="/WEB-INF/jsp/addEmployeeUI.jsp"></forward>
            <forward name="loginJsp" path="/WEB-INF/jsp/login.jsp"></forward>
        </action>
    </action-mappings>

    <controller>
        <set-property property="processorClass"
                      value="org.springframework.web.struts.DelegatingRequestProcessor"></set-property>
    </controller>

</struts-config>

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- 配置Hibernate的基本属性 -->
        <!-- 1.数据源配置到IOC容器中 -->
        <!-- 2.关联的.hbm.xml也在IOC容器配置SessionFactory实例 -->
        <!-- 3.配置Hibernate的基本属性:方言,SQL显示及格式化,生成数据表的策略以及二级缓存 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="cache.use_second_level_cache">true</property>
        <property name="ache.provider_class">org.hibernate.cache.internal.DefaultCacheKeysFactory</property>
        <property name="generate_statistics">true</property>
    </session-factory>
</hibernate-configuration>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!-- spring 初始化 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        <listener-class>k.listener.StartSystemListener</listener-class>
        <!--<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>-->
    </listener>

    <!-- struts 初始化 -->
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

    <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码-->
    <filter>
        <filter-name>springUtf8Encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>springUtf8Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!--<filter>-->
    <!--<filter-name>EncodingFilter</filter-name>-->
    <!--<filter-class>k.listener.EncodingFilter</filter-class>-->
    <!--</filter>-->
    <!--<filter-mapping>-->
    <!--<filter-name>EncodingFilter</filter-name>-->
    <!--<url-pattern>/*</url-pattern>-->
    <!--</filter-mapping>-->

    <!-- 懒加载 -->
    <filter>
        <filter-name>OpenSessionInViewFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>OpenSessionInViewFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


    <!-- 以下3项参数与log4j的配置相关 -->
    <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
    </context-param>

    <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>60000</param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.util.Log4jConfigListener
        </listener-class>
    </listener>


</web-app>
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
username=root
password=xxxx
initialSize=20
maxActive=500
maxIdle=2
minIdle=1
View Code

log4j.properties

log4j.rootLogger=ERROR, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n
View Code
EmployeeAction
package k.action;

import k.domain.Department;
import k.domain.Employee;
import k.form.EmployeeForm;
import k.service.DepartmentService;
import k.service.EmployeeService;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;

public class EmployeeAction extends DispatchAction {

    @Resource
    private EmployeeService employeeService;
    @Resource
    private DepartmentService departmentService;

    public ActionForward addEmployeeUI(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        return mapping.findForward("addEmployeeUI");
    }

    public ActionForward addEmployee(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        EmployeeForm employeeForm = (EmployeeForm) form;
        Employee employee = new Employee();
        employee.setName(employeeForm.getName());
        employee.setEmail(employeeForm.getEmail());
        employee.setSalary(employeeForm.getSalary());
        employee.setPassword(employeeForm.getPassword());
        employee.setGrade(employeeForm.getGrade());
        employee.setHireDate(new Date());
        Department department = departmentService.getDepartmentbyEmployee(Integer.parseInt(employeeForm.getDepartment_id()));
        employee.setDepartment(department);
        try {
            employeeService.addEmployee(employee);
        } catch (Exception e) {
            e.printStackTrace();
            return mapping.findForward("err");
        }
        return mapping.findForward("ok");
    }
}
View Code
LoginAction
package k.action;

import k.domain.Employee;
import k.form.EmployeeForm;
import k.service.EmployeeService;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginAction extends DispatchAction {

    @Resource
    private EmployeeService employeeService;

    public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        return mapping.findForward("loginJsp");
    }

    public ActionForward doLogin(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        EmployeeForm employeeOld = (EmployeeForm) form;
        Employee employee = new Employee(Integer.parseInt(employeeOld.getId()), employeeOld.getPassword());
        employee = employeeService.checkEmployee(employee);
        if (employee != null) {
            request.getSession().setAttribute("employee", employee);
            return mapping.findForward("main");
        }
        return mapping.findForward("err");
    }

    public ActionForward loginOut(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        return super.execute(mapping, form, request, response);
    }
}
View Code

Department.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="k.domain.Department" table="t_department">
        <!--<cache usage="read-write"></cache>-->
        <id name="id" column="id" type="java.lang.Integer">
            <generator class="native"></generator>
        </id>
        <property name="name" column="name" type="java.lang.String" length="64"></property>
        <!-- 在客户映射文件中,表示所有联系人
           使用set标签表示所有联系人
           set标签里面有name属性:
                属性值写在客户实体类里面表示联系人的set集合名称

            inverse属性默认值:false不放弃关系维护
                           true 表示放弃关系维护
       -->
        <set name="employees" inverse="true" cascade="save-update,delete">
            <!-- 一对多建表,有外键
                hibernate机制:双向维护外键,在一和多那一方都配置外键
                column属性值:外键名称
             -->
            <key column="department_id"></key>
            <one-to-many class="k.domain.Employee"></one-to-many>
        </set>
    </class>
</hibernate-mapping>
View Code

Employee.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="k.domain.Employee" table="t_employee">
        <id name="id" column="id" type="java.lang.Integer">
            <!-- 设置数据库表id增长策略  native:生成表id值就是主键自动增长  uuid -->
            <generator class="native"></generator>
        </id>
        <!-- 配置其他属性和表字段对应  name属性:实体类属性名称 column属性:生成表字段名称 -->
        <property name="name" column="name" type="java.lang.String" length="64"></property>
        <property name="email" column="email" type="java.lang.String" length="64"></property>
        <property name="hireDate" column="hireDate" type="java.util.Date"></property>
        <property name="salary" column="salary" type="java.lang.Float"></property>
        <property name="password" column="password" type="java.lang.String" length="64"></property>
        <property name="grade" column="grade" type="java.lang.Integer" length="3"></property>
        <many-to-one name="department" class="k.domain.Department" column="department_id"></many-to-one>
    </class>
</hibernate-mapping>
View Code
Department
package k.domain;

import java.util.Set;

public class Department {
    private Integer id;
    private String name;
    private Set<Employee> employees;

    public Department() {
    }

    public Department(String name) {
        this.name = name;
    }

    public Integer getId() {

        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }
}
View Code
Employee
package k.domain;

import java.util.Date;

public class Employee {
    private Integer id;
    private String name;
    private String email;
    private Date hireDate;
    private Float salary;
    private String password;
    private Integer grade;
    private Department department;
    private String department_id;

    public Employee(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    public Employee() {
    }

    public Employee(String name, String password, String email, Date hireDate, Float salary, Integer grade) {
        this.name = name;
        this.email = email;
        this.hireDate = hireDate;
        this.salary = salary;
        this.password = password;
        this.grade = grade;
    }

    public String getDepartment_id() {
        return department_id;
    }

    public void setDepartment_id(String department_id) {
        this.department_id = department_id;
    }

    public Integer getId() {

        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    public Float getSalary() {
        return salary;
    }

    public void setSalary(Float salary) {
        this.salary = salary;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getGrade() {
        return grade;
    }

    public void setGrade(Integer grade) {
        this.grade = grade;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

}
View Code
EmployeeForm
package k.form;

import org.apache.struts.action.ActionForm;

import java.util.Date;

public class EmployeeForm extends ActionForm {
    private String id;
    private String name;
    private String email;
    private Date hireDate;
    private Float salary;
    private String password;
    private Integer grade;
    private String department_id;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Date getHireDate() {
        return hireDate;
    }

    public void setHireDate(Date hireDate) {
        this.hireDate = hireDate;
    }

    public Float getSalary() {
        return salary;
    }

    public void setSalary(Float salary) {
        this.salary = salary;
    }

    public Integer getGrade() {
        return grade;
    }

    public void setGrade(Integer grade) {
        this.grade = grade;
    }

    public String getDepartment_id() {
        return department_id;
    }

    public void setDepartment_id(String department_id) {
        this.department_id = department_id;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
View Code
EncodingFilter
package k.listener;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import java.io.IOException;

public class EncodingFilter extends HttpServlet implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
                         FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");
        // System.out.println("========== set utf-8 ok ==========");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }
}
View Code
StartSystemListener
package k.listener;

import k.util.WebHelper;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class StartSystemListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //1.将项目上下文路径(request.getContextPath())放置到application域中.
        ServletContext application = sce.getServletContext();
        String app_path = application.getContextPath();
        application.setAttribute("APP_PATH", app_path);
        System.out.println("========== APP_PATH = " + app_path);
        WebHelper.setApp_Path(app_path);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {

    }
}
View Code
DepartmentServiceImpl
package k.service.impl;

import k.domain.Department;
import k.domain.Employee;
import k.service.DepartmentService;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.io.Serializable;

@Transactional
public class DepartmentServiceImpl implements DepartmentService {

    @Resource
    private SessionFactory sessionFactory;

    @Override
    public void addDepartment(Department department) {
        Session session = sessionFactory.openSession();
        // Transaction transaction = session.beginTransaction();
        Serializable res = session.save(department);
        // transaction.commit();
    }

    @Override
    public Department getDepartmentbyEmployee(Serializable id) {
        Session session = sessionFactory.openSession();
        Department department = session.get(Department.class, id);
        return department;
    }
}
View Code
EmployeeServiceImpl
package k.service.impl;

import k.domain.Department;
import k.domain.Employee;
import k.service.EmployeeService;
import org.hibernate.*;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;

@Transactional
public class EmployeeServiceImpl implements EmployeeService {

    @Resource
    private SessionFactory sessionFactory;

    @Override
    public int addEmployee(Employee e) {
        Session session = sessionFactory.openSession();
        Transaction transaction = session.beginTransaction();
        Serializable res = session.save(e);
        transaction.commit();
        return (Integer) res;
    }

    @Override
    public List<Employee> getList() {
        return null;
    }

    @Override
    public int updateEmployee() {
        return 0;
    }

    @Override
    public int delEmployee(Serializable id) {
        return 0;
    }

    @Override
    public Employee checkEmployee(Employee e) {
        Session session = sessionFactory.openSession();
        Query sqlQuery = session.createQuery("from k.domain.Employee c where c.id=? ");
        // SQLQuery sqlQuery = session.createSQLQuery("select * from t_employee where id=?");
        sqlQuery.setParameter(0, e.getId());
        // Hibernate.initialize(Department.class);      //显示初始化懒加载
        List<Employee> list = sqlQuery.list();
        if (list.size() == 1) {
            // Department department = list.get(0).getDepartment();
            // String s1 = department.getId() + "===3" + department.getName();
            // System.out.println(department.getId() + "===3" + department.getName());
            return list.get(0);
        }
        return null;
    }
}
View Code
DepartmentService
package k.service;

import k.domain.Department;
import java.io.Serializable;

public interface DepartmentService {
    void addDepartment(Department department);

    Department getDepartmentbyEmployee(Serializable id);
}
View Code
EmployeeService
package k.service;

import k.domain.Employee;

import java.io.Serializable;
import java.util.List;

public interface EmployeeService {
    int addEmployee(Employee e);

    List<Employee> getList();

    int updateEmployee();

    int delEmployee(Serializable id);

    Employee checkEmployee(Employee e);
}
View Code
WebHelper
package k.util;

import java.util.UUID;

public class WebHelper {

    public static String getApp_Path() {
        return APP_PATH;
    }

    public static void setApp_Path(String appPath) {
        APP_PATH = appPath;
    }

    private static String APP_PATH = "";

    public static String getNewFileName(String fileName) {
        int beginIndex = fileName.lastIndexOf(".");
        return UUID.randomUUID().toString() + fileName.substring(beginIndex, fileName.length());
    }
}
View Code

addEmployeeUI.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加雇员</title>
</head>
<body>
<h1>添加雇员</h1>
<form action="${APP_PATH}/employee.do?action=addEmployee" method="post">
    <table>
        <tr>
            <td>name:</td>
            <td><input type="text" name="name" value="张三4"></td>
        </tr>
        <tr>
            <td>email:</td>
            <td><input type="text" name="email" value="zhangsan@qq.com"></td>
        </tr>
        <tr>
            <td>salary:</td>
            <td><input type="text" name="salary" value="5000"></td>
        </tr>
        <tr>
            <td>password:</td>
            <td><input type="password" name="password" value="1"></td>
        </tr>
        <tr>
            <td>grade:</td>
            <td><input type="text" name="grade" value="1"></td>
        </tr>
        <tr>
            <td>department_id:</td>
            <td><select name="department_id">
                <option value="1" selected>部门1</option>
            </select></td>
        </tr>
        <tr>
            <td><input type="submit" name="sub1" value="添加"></td>
            <td><input type="reset" name="reset" value="重置"></td>
        </tr>
    </table>
</form>
</body>
</html>
View Code

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>管理员登录</title>
</head>
<body>
<h1>管理员登录</h1>
<form action="${APP_PATH}/login.do?action=doLogin" method="post">
    <table>
        <tr>
            <td>id:</td>
            <td><input type="text" name="id" value="1"></td>
        </tr>
        <tr>
            <td>name:</td>
            <td><input type="text" name="name" value="1哈哈"></td>
        </tr>
        <tr>
            <td>pwd:</td>
            <td><input type="password" name="password" value="1"></td>
        </tr>
        <tr>
            <td><input type="submit" name="sub1" value="登录"></td>
            <td><input type="reset" name="reset" value="重置"></td>
        </tr>
    </table>
</form>
</body>
</html>
View Code

main.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录成功</title>
</head>
<body>
<h1>登录成功</h1>
<a href="${APP_PATH}/login.do?action=login">返回登录</a>
<h2>欢迎 【${employee.name}】 您所在的部门是 【${employee.getDepartment().getName()} 】请选择您要进行的操作</h2>
<a href="${APP_PATH}/employee.do?action=addEmployeeUI">添加雇员</a> <br/>
<a href="#">显示雇员</a> <br/>
<a href="#">查询雇员</a> <br/>
<a href="#">退出系统</a> <br/>
</body>
</html>
View Code

ok.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>成功</title>
</head>
<body>
<h1>成功</h1>
<a href="#">返回继续添加</a>
<a href="#">返回主界面</a>
<a href="${APP_PATH}/login.do?action=login">返回登录</a>
</body>
</html>
View Code

err.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>操作失败</title>
</head>
<body>
<h1>操作失败</h1>
<a href="#">操作失败,返回主界面</a>
<a href="${APP_PATH}/login.do?action=login">返回登录</a>
</body>
</html>
View Code

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
 <jsp:forward page="WEB-INF/jsp/login.jsp"></jsp:forward>
  </body>
</html>
View Code

 

posted @ 2020-02-18 20:30  一只桔子2233  阅读(184)  评论(0编辑  收藏  举报