zoukankan      html  css  js  c++  java
  • 【 SSH 实例】使用ssh开发的简单项目

    简单的员工管理项目,使用spring、struts1、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"
           xmlns:tx="http://www.springframework.org/schema/tx"
           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
               http://www.springframework.org/schema/tx
               http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
                http://www.springframework.org/schema/cache
                http://www.springframework.org/schema/cache/spring-cache.xsd
               http://www.springframework.org/schema/tx/spring-tx.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="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
        <tx:annotation-driven transaction-manager="transactionManager"/>
    
        <!--开启注解配置-->
        <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 id="employeeService" name="employeeService" class="k.service.impl.EmployeeServiceImpl"/>
        <bean name="departmentService" class="k.service.impl.DepartmentServiceImpl"/>
    
    </beans>
    View Code

    db.properties

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

    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>
    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

    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="add" path="/WEB-INF/jsp/employee/add.jsp"></forward>
                <forward name="loginJsp" path="/WEB-INF/jsp/login.jsp"></forward>
                <forward name="list" path="/WEB-INF/jsp/employee/list.jsp"></forward>
                <forward name="update" path="/WEB-INF/jsp/employee/update.jsp"></forward>
            </action>
        </action-mappings>
    
        <controller>
            <set-property property="processorClass"
                          value="org.springframework.web.struts.DelegatingRequestProcessor"></set-property>
        </controller>
    
    </struts-config>
    View Code

    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>
    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);
        }
    
        public ActionForward main(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
            return mapping.findForward("loginJsp");
        }
    }
    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 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("add");
        }
    
        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 = (Department) departmentService.findById(Department.class, Integer.parseInt(employeeForm.getDepartment_id()));
            employee.setDepartment(department);
            try {
                employeeService.add(employee);
            } catch (Exception e) {
                e.printStackTrace();
                return mapping.findForward("err");
            }
            return mapping.findForward("ok");
        }
    
        public ActionForward getList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
            // request.setAttribute("employeeList", employeeService.getEmployeeList());
            // return mapping.findForward("list");
            String s_pageNow = request.getParameter("pageNow");
            int pageNow = 1;
            int pageSize = 3;
            if (s_pageNow != null) {
                pageNow = Integer.parseInt(s_pageNow);
            }
            int pageCount = employeeService.getPageCount(pageSize);
            request.setAttribute("pageCount", pageCount);
            request.setAttribute("employeeList", employeeService.getEmployeeList(pageSize, pageNow));
            return mapping.findForward("list");
        }
    
        public ActionForward delEmp(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
            try {
                employeeService.delById(Employee.class, Integer.parseInt(request.getParameter("id")));
            } catch (Exception e) {
                e.printStackTrace();
                return mapping.findForward("err");
            }
            return mapping.findForward("ok");
        }
    
        public ActionForward updateUI(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
            String id = request.getParameter("id");
            Employee employee = (Employee) employeeService.findById(Employee.class, Integer.parseInt(id));
            request.setAttribute("emp", employee);
            return mapping.findForward("update");
        }
    
        public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
            EmployeeForm employeeForm = (EmployeeForm) form;
            Employee employee = new Employee();
            employee.setId(Integer.parseInt(employeeForm.getId()));
            employee.setName(employeeForm.getName());
            employee.setEmail(employeeForm.getEmail());
            employee.setSalary(employeeForm.getSalary());
            employee.setPassword(employeeForm.getPassword());
            employee.setGrade(employeeForm.getGrade());
            employee.setHireDate(new Date());
            try {
                employeeService.executeUpdate(employee);
            } catch (Exception e) {
                e.printStackTrace();
                return mapping.findForward("err");
            }
            return mapping.findForward("ok");
        }
    }
    View Code
    BasicAbstractService
    package k.basic;
    
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.springframework.transaction.annotation.Transactional;
    
    import javax.annotation.Resource;
    import java.io.Serializable;
    import java.util.List;
    
    @Transactional
    public abstract class BasicAbstractService implements BasicService {
    
        @Resource
        private SessionFactory sessionFactory;
    
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
        }
    
        @Override
        public void add(Object object) {
            this.sessionFactory.getCurrentSession().save(object);
        }
    
        @Override
        public Object findById(Class classz, Serializable id) {
            return this.sessionFactory.getCurrentSession().get(classz, id);
        }
    
        @Override
        public List executeQuery(String hql, Object[] parameters) {
            Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
            if (parameters != null && parameters.length > 0) {
                for (int i = 0; i < parameters.length; i++) {
                    query.setParameter(i, parameters[i]);
                }
            }
            return query.list();
        }
    
        @Override
        public List executeQueryByPage(String hql, Object[] parameters, Integer pageNow, Integer pageSize) {
            Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
            if (parameters != null && parameters.length > 0) {
                for (int i = 0; i < parameters.length; i++) {
                    query.setParameter(i, parameters[i]);
                }
            }
            return query.setFirstResult((pageNow - 1) * pageSize).setMaxResults(pageSize).list();
        }
    
        @Override
        public List executeUpdate(String hql, Object[] parameters) {
            return null;
        }
    
        @Override
        public Object uniqueQuery(String hql, Object[] parameters) {
            Query query = this.sessionFactory.getCurrentSession().createQuery(hql);
            return query.uniqueResult();
        }
    
        @Override
        public int queryPageCount(String hql, Object[] parameters, Integer pageSize) {
            return 0;
        }
    
        @Override
        public void delById(Class clazz, Serializable id) {
            Session session = this.sessionFactory.getCurrentSession();
            session.delete(findById(clazz, id));
        }
    
        @Override
        public List executeUpdate(Object object) {
            Session session = this.sessionFactory.getCurrentSession();
            session.update(object);
            return null;
        }
    }
    View Code
    BasicService
    package k.basic;
    
    import java.io.Serializable;
    import java.util.List;
    
    public interface BasicService {
    
        Object findById(Class classz, Serializable id);
    
        List executeQuery(String hql, Object[] parameters);
    
        List executeQueryByPage(String hql, Object[] parameters, Integer pageNow, Integer pageSize);
    
        void add(Object object);
    
        List executeUpdate(String hql, Object[] parameters);
    
        List executeUpdate(Object object);
    
        Object uniqueQuery(String hql, Object[] parameters);
    
        int queryPageCount(String hql, Object[] parameters, Integer pageSize);
    
        void delById(Class clazz, Serializable id);
    }
    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 password) {
            this.id = id;
            this.password = password;
        }
    
        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
    DepartmentService
    package k.service;
    
    import k.basic.BasicService;
    
    public interface DepartmentService extends BasicService {
    
    }
    View Code
    EmployeeService
    package k.service;
    
    import k.basic.BasicService;
    import k.domain.Employee;
    
    import java.io.Serializable;
    import java.util.List;
    
    public interface EmployeeService extends BasicService {
        Employee checkEmployee(Employee e);
    
        List getEmployeeList(int pageSize, int pageNo);
    
        List getEmployeeList();
    
        int getPageCount(int pageSize);
    
    }
    View Code
    DepartmentServiceImpl
    package k.service.impl;
    
    import k.basic.BasicAbstractService;
    import k.service.DepartmentService;
    
    public class DepartmentServiceImpl extends BasicAbstractService implements DepartmentService {
    
    }
    View Code
    EmployeeServiceImpl
    package k.service.impl;
    
    import k.basic.BasicAbstractService;
    import k.domain.Employee;
    import k.service.EmployeeService;
    
    import java.io.Serializable;
    import java.util.List;
    
    public class EmployeeServiceImpl extends BasicAbstractService implements EmployeeService {
    
        @Override
        public Employee checkEmployee(Employee e) {
            String hql = "from Employee c where c.id=? and c.password=?";
            Object[] parameters = new Object[]{e.getId(), e.getPassword()};
            List list = executeQuery(hql, parameters);
            return list != null && list.size() > 0 ? (Employee) list.get(0) : null;
        }
    
        @Override
        public List getEmployeeList(int pageSize, int pageNo) {
            String hql = "from Employee order by id";
            return this.executeQueryByPage(hql, null, pageNo, pageSize);
        }
    
        @Override
        public int getPageCount(int pageSize) {
            String sql = "select count(*) from Employee";
            Object obj = this.uniqueQuery(sql, null);
            int rowCount = Integer.parseInt(obj.toString());
            return (rowCount - 1) / pageSize + 1;
        }
    
        @Override
        public List getEmployeeList() {
            String hql = "from Employee ";
            return executeQuery(hql, null);
        }
    
    
    }
    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

    add.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

    list.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
    <html>
    <head>
        <title>管理员列表</title>
    </head>
    <body>
    <h1>管理员列表</h1>
    <form action="${APP_PATH}/login.do?action=doLogin" method="post">
        <table>
            <tr>
                <td>id</td>
                <td>name</td>
                <td>email</td>
                <td>grade</td>
                <td>salary</td>
                <td>修改用户</td>
                <td>删除用户</td>
            </tr>
            <c:forEach var="emp" items="${employeeList}">
                <tr>
                    <td>${emp.id}</td>
                    <td>${emp.name}</td>
                    <td>${emp.email}</td>
                    <td>${emp.grade}</td>
                    <td>${emp.salary}</td>
                    <td><a href="${APP_PATH}/employee.do?action=updateUI&id=${emp.id}">修改用户</a></td>
                    <td><a href="${APP_PATH}/employee.do?action=delEmp&id=${emp.id}">删除用户</a></td>
                </tr>
            </c:forEach>
        </table>
        <c:forEach var="i" begin="1" end="${pageCount}">
            <a href="${APP_PATH}/employee.do?action=getList&pageNow=${i}">${i}</a>
        </c:forEach>
    </form>
    </body>
    </html>
    View Code

    update.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
    <html>
    <head>
        <title>修改用户</title>
    </head>
    <body>
    <form id="form" action="${APP_PATH}/employee.do?action=update" method="post">
        <table>
            <tr hidden>
                <td>id</td>
                <td><input type="text" name="id" value="${emp.id}"></td>
            </tr>
            <tr>
                <td>name</td>
                <td><input type="text" name="name" value="${emp.name}"></td>
            </tr>
            <tr>
                <td>email</td>
                <td><input type="text" name="email" value="${emp.email}"></td>
            </tr>
            <tr>
                <td>grade</td>
                <td><input type="text" name="grade" value="${emp.grade}"></td>
            </tr>
            <tr>
                <td>salary</td>
                <td><input type="text" name="salary" value="${emp.salary}"></td>
            </tr>
            <tr>
                <td><input type="submit" name="salary" value="修改"></td>
            </tr>
        </table>
    </form>
    </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}/employee.do?action=getList">返回列表</a>
    <a href="${APP_PATH}/login.do?action=login">返回登录</a>
    </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="${APP_PATH}/employee.do?action=getList">显示雇员</a> <br/>
    <a href="#">查询雇员</a> <br/>
    <a href="#">退出系统</a> <br/>
    <a href="${APP_PATH}/employee.do?action=getList">返回列表</a>
    </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="${APP_PATH}/employee.do?action=addEmployeeUI">返回继续添加</a>
    <a href="${APP_PATH}/employee.do?action=getList">返回列表</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
    jar包

    EmployeeServiceImpl
  • 相关阅读:
    Scrum Meeting Alpha
    Scrum Meeting Alpha
    Scrum Meeting Alpha
    你连自律都做不到,还奢谈什么自由?
    改变这个世界
    这世界没有人能随随便便成功
    “沙堆实验”
    解读那些年我们见过的“富人思维”
    心存希望,面朝大海
    闻香识女人 演讲台词
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12347253.html
Copyright © 2011-2022 走看看