servlet两小时项目

2 篇文章 0 订阅
2 篇文章 0 订阅

两小时项目–从前端到后台


1 应用到的开发工具

  • 声明:在本项目之前请看“上一篇”
  • 数据库:Oracle Database 10g Express Edition 入门(XE免费版)
  • Java开发工具:MyEclipse 10
  • 浏览器:Google Chrome
  • 服务器:apache-tomcat-7.0.70

2 项目背景

近期公司要我等开发一个能够实现数据存储的网页app,在很久没有接触数据库的情况下,刚上手还是有点手生,项目开发完成后,为了记录整体框架,并且方便各位一线战友查阅,特在此记录。

3 项目概述

  • 1、项目名称 :是自己的名字简写 √
  • 2、项目的编码:utf-8 √
  • 3、涉及的表格 :user emp (简化后的表格,重在记录整体开发框架)√
  • 4、涉及到的功能:
    a)登录:√
    b)注册: √
    c)展示所有:在登录成功的页面中点击”显示所有员工”,把所有的员工信息展示出来 √

    d)在登录成功的界面中,添加一个超链接 “添加员工” √

    e)删除功能 :在显示所有员工的页面中,每一条数据上都会有一个删除操作,删除完成,跳转到显示所有 √

    f)修改:每一条后面显示”修改的超链接” 进入独立的修改界面

    g) 在显示所有的界面中展示登录成功的用户名
    h) 强制用户登录:对emp表的CRUD相关操作都需要强制用户登录

    l) 安全退出:配合强制用户登录一起测试,对emp表的CRUD相关操作页面中都有

4 整理开发思路

4.1 该项目涉及到三个部分

  1. View部分:是HTML代码的编写,以网页形式与用户进行交互,本项目运用servlet服务,把html编码嵌入在Java中
  2. 服务器:servlet服务以来的开发环境–tomcat
  3. 数据处理:数据的操作与存储

4.2 开发步骤

遵循由后台想前端的开发步骤,逐层开发,逐层测试,以免错误堆积。
1. 后台的开发,DAO层,完成数据库的连接和 sql语句的提交和执行,Service层完成需要的功能,可以同时操作多个DAO层的方法,能够完成数据回滚。
2. 服务器:servlet运行在服务器上的一个小程序,接收Client的请求,处理请求,并把处理好的数据回应到Client。要注意的是web.xml文件的书写
3.客户端的开发,本文中的客户端仅是简单的HTML网页,完成与用户的交互。

5 项目开发

5.1 DAO层与service层的开发

DAO层要要完成的任务是连接数据库和对数据库的操作。
在上一篇写的分享中我介绍了DAO层与Service层的开发步骤与用法,在本篇分享中直接上代码。

5.1.1 DAO层的开发

com.util 包

JDBCUtil.java文件

package com.nyist.lfw.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtil {
//创建一个map集合下的实现类   用来处理文件
private static Properties p = new Properties();
//创建线程 
private static final ThreadLocal<Connection>  tl   = new ThreadLocal<Connection>();
//加载配置文件
static{
    InputStream is = null;
    try {
        //输入流 读取配置文件
        is = JDBCUtil.class.getResourceAsStream("/com/nyist/lfw/config/db.properties");
        //附属类加载的配置文件
        p.load(is);
    } catch (Exception e) {
        // TODO: handle exception
    }finally{
        try {
            is.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

//获取客户端
public static Connection getConn(){
    Connection conn = tl.get();
    //判断当前线程是否有客户端
    //没有   创建  ---有  直接返回
    if(conn == null){
        try {
            //申请驱动
            Class.forName(p.getProperty("jdbc.driver"));
            //连接数据库
            conn = DriverManager.getConnection(p.getProperty("jdbc.url"), p.getProperty("jdbc.user"), p.getProperty("jdbc.pass"));
            //存入tl
            tl.set(conn);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    return conn;
}

//释放资源
public static void close(Connection conn,Statement stmt,ResultSet rs){
    if(rs != null){
        try {
            rs.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    if(stmt != null){
        try {
            stmt.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    if(conn != null){
        try {
            conn.close();
            tl.remove();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
}

com.config 包

db.properties文件

jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.user=hr
jdbc.pass=sys

————–

com.dao 包 —- DAO层的操作

com.dao

IBossDAO.java文件

public interface IBossDAO {
    //登陆查询操作
    public String selectByName(String user);
}

BossDAO.java文件


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

import com.nyist.lfw.util.JDBCUtil;
import com.sun.corba.se.spi.orbutil.fsm.Guard.Result;

public class BossDAO implements IBossDAO{
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
@Override
public String selectByName(String user) {
    // TODO Auto-generated method stub
    String pass = null;
    String sql = "select * from t_boss where users = ?";
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //sql预编译
        pstmt = conn.prepareStatement(sql);
        //执行sql
        pstmt.setString(1, user);
        rs = pstmt.executeQuery();
        //结果集
        if(rs.next()){
            pass = rs.getString(3);
            System.out.println("在DAO中获取到的密码是i"+pass);
        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(null, pstmt, rs);
    }
    return pass;
}

}

IBossDAO.java文件

import java.util.List;

import com.nyist.lfw.entity.User;
    public interface IUserDAO {
    //存一条  注册
    public int  registUser(User u);
    //查找一条数据
    public String selectUser(String username);
    //查全部数据
    public List<User> selectAll();
    //删除一条员工信息
    public void deleteUser(String username);
    //修改一条员工信息
    public void updateUser(User u);
}

com.nyist.lfw.dao

UserDAO.java文件

public class UserDAO implements IUserDAO {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
//注册
@Override
public int  registUser(User u) {
    // TODO Auto-generated method stub
    int j = 0;
    String sql = "insert into t_user (id,username,password) values (user_seq.nextval,?,?)";
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //预编译sql
        pstmt = conn.prepareStatement(sql);
        //? 绑定值    执行SQL
        pstmt.setString(1, u.getUsername());
        pstmt.setString(2, u.getPassword());
        int i = pstmt.executeUpdate();
        if(i != 0 ){
            System.out.println("注册成功");
            j++;
        }else{
            System.out.println("注册失败!!---");
        }
    } catch (Exception e) {
        j--;
        // TODO: handle excepti   on
        System.out.println("在创建用户的实现DAO中出错");
    }finally{
        JDBCUtil.close(null, pstmt, rs);
    }
    return j;
}
//查询一个
@Override
public String selectUser(String username) {
    // TODO Auto-generated method stub
    String sql = "select password from t_user where username = ?";
    String passw = "";
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //sql
        pstmt = conn.prepareStatement(sql);
        //执行sql
        pstmt.setString(1, username);
        rs = pstmt.executeQuery();
        //结果集
        if(rs.next()){
            passw=rs.getString(1);
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(null, pstmt, rs);
    }

    return passw;
}
//查询全部
@Override
public List<User> selectAll() {
    // TODO Auto-generated method stub
    List<User> list = new ArrayList<User>();
    String sql = "select * from t_user";
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //sql
        pstmt = conn.prepareStatement(sql);
        //执行sql
        rs = pstmt.executeQuery();
        //结果集处理
        while(rs.next()){
            User u = new User(rs.getInt(1), rs.getString(2), rs.getString(3));
            list.add(u);
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源  
        JDBCUtil.close(null , pstmt, rs);
    }

    return list;
}
//通过用户名 删除一个
@Override
public void deleteUser(String username) {
    // TODO Auto-generated method stub
    String sql = "delete from t_user where username = ?";
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //预编译sql
        pstmt = conn.prepareStatement(sql);
        //执行sql
        pstmt.setString(1, username);
        int i = pstmt.executeUpdate();
        if(i>0){
            System.out.println("在DAO中删除成功");    
        }else{
            System.out.println("在DAO中删除失败");
        }
    } catch (SQLException e) {
        System.out.println("DAO中删除   抛出异常");
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(null, pstmt, rs);
    }
    //
}
@Override
public void updateUser(User u) {
    // TODO Auto-generated method stub
    String sql = "update t_user set username = ?, password = ?  where id= ?";
    try {
        //1获取conn
        conn = JDBCUtil.getConn();
        //2 sql预编译
        pstmt = conn.prepareStatement(sql);
        //3执行sql
        pstmt.setString(1, u.getUsername());
        pstmt.setString(2, u.getPassword());
        pstmt.setInt(3, u.getId());
        int i = pstmt.executeUpdate();
        //4结果集处理
        if(i!=0){
            System.out.println("在DAO层修改成功!");
        }else{
            System.out.println("在DAO层修改失败");
        }

        //5释放资源

        JDBCUtil.close(null, pstmt, rs);

    } catch (Exception e) {
        // TODO: handle exception
    }
}}


5.2.2 Service层的开发

com.service 包中

IBossService.java文件

public interface IBossService {
    //通过用户名查找密码
    public String selectByName(String user);
}



BossService.java文件

    package com.nyist.lfw.service;

import java.sql.Connection;
import java.sql.SQLException;

import com.nyist.lfw.dao.*;
import com.nyist.lfw.util.JDBCUtil;

public class BossService implements IBossService{
private static Connection conn = null;

@Override
public String selectByName(String user) {
    // TODO Auto-generated method stub
    String pass = null;
    try {
        //获取conn客户端
        conn = JDBCUtil.getConn();
        //关闭自动提交
        conn.setAutoCommit(false);
        //DAO操作
        IBossDAO ibs = new BossDAO();
        pass = ibs.selectByName(user);
        //提交
        conn.commit();
        System.out.println("Service层查找密码提交成功!");
    } catch (Exception e) {
        try {
            conn.rollback();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // TODO: handle exception
    }finally{
        //释放资源
        JDBCUtil.close(conn, null, null);
    }
    return pass;
}
}

IUserService.java文件

public interface IUserService {
//注册
public int addUser(User u);
//查询一个
public String selectUser(String username);
//查询全部
public List<User> selecAll();
//删除一个
public void delete(String username);
//修改一个 员工
public void updateUser(User u);
}

UserService.java文件


import java.sql.*;
import java.util.*;
import com.nyist.lfw.dao.*;
import com.nyist.lfw.entity.User;
import com.nyist.lfw.util.JDBCUtil;

public class UserService implements IUserService{
private static Connection conn = null;
private static IUserDAO dao = new UserDAO();
private static List<User> list = new ArrayList<User>();
@Override
public int addUser(User u) {
    int j = 0;
    // TODO Auto-generated method stub
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //关闭自动提交
        conn.setAutoCommit(false);
        //dao操作
        j = dao.registUser(u);
        //提交
        conn.commit();
        System.out.println("service层提交数据成功");
    } catch (SQLException e) {
        try {
            conn.rollback();
            System.out.println("service层提交失败");
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(conn, null, null);
    }

    return j;
}
//登陆
@Override
public String selectUser(String username) {
    // TODO Auto-generated method stub
    String str = "";
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //关闭自动提交
        conn.setAutoCommit(false);
        //dao操作
        str = dao.selectUser(username);
        //提交
        conn.commit();
        System.out.println("登陆操作在service层提交成功!");
    } catch (Exception e) {
        try {
            conn.rollback();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(conn, null, null);
    }

    return str;
}

@Override
public List<User> selecAll() {
    // TODO Auto-generated method stub
    try {
        //获取conn
        conn= JDBCUtil.getConn();
        //关闭自动提交
        conn.setAutoCommit(false);
        //dao
        list = dao.selectAll();
        //提交
        conn.commit();
    } catch (Exception e) {
        try {
            conn.rollback();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(conn, null, null);
    }


    return list;
}

@Override
public void delete(String username) {
    // TODO Auto-generated method stub
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //关闭自动提交
        conn.setAutoCommit(false);
        //dao操作
        dao.deleteUser(username);
        //提交
        conn.commit();
        System.out.println("service层 删除提交");
    } catch (Exception e) {
        try {
            conn.rollback();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(conn, null, null);
    }
}
@Override
public void updateUser(User u) {
    // TODO Auto-generated method stub
    try {
        //获取conn
        conn = JDBCUtil.getConn();
        //关闭自动修提交
        conn.setAutoCommit(false);
        //DAO层操作
        dao.updateUser(u);
        //提交
        conn.commit();
    } catch (Exception e) {
        try {
            conn.rollback();
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        //释放资源
        JDBCUtil.close(conn, null, null);
    }
}}

—————-


到此为止底层基本已经写完了

我们可以在这时候进行数据的测试。

我个人的测试思路是直接写一个测试的主函数,在Java中进行测试,当然也可以用@Test 方法进行测试。

5.2 服务器与客户端的实现—-servlet |html

本项目运用到的服务器是servlet服务,它的功能主要是就收客户端的请求,处理请求并给予回应。

在这里,我的书写顺序是一项一项业务的实现,比如说我要实现登陆功能,就先把登陆功能的服务器与客户端一并书写完成。

5.2.1 登陆数据的处理

HTML文件–构建简单的登陆页面

为了完成数据的简单测试,在这里我简单的勾勒了一个HTML的用户登陆界面。
代码如下:

<html>
<head>
  <style type="text/css">
     body{text-align:center;}
     span{ color:red;  font-size:200% } 
     hr{ margin-bottom:30px }
  </style>  
</head>
<body>
<span> 登录 </span>
<hr color="red"/>
<form action="http://localhost:8999/lfw_emp/admAction" method="post">
    <table border="1" bordercolor="blue" width="40%" cellspacing="0" align="center">
      <tr>
        <td>请输入用户名:</td>
        <td><input type="text" name="username"/></td>   
      </tr> 
      <tr>
        <td>请输入密码:</td>
        <td><input type="password" name="password"/></td>   
      </tr>
      <tr align="center">
        <td colspan="2">
            <input type="submit" value="登陆"/> <input type="reset" value="重置"/>
            <!-- a href="RegistView.html">注册</a-->
            <!-- a href="http://localhost:8999/lfw_emp/SelectAll">查询所有</a -->
        </td>   
      </tr>
    </table>
  </form>
  </body>   
</html>

com.action 包

完成登陆数据的处理:

public class admAction extends HttpServlet{
@Override
    protected void service(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException{
        //IO编码格式
        req.setCharacterEncoding("utf-8");
        res.setContentType("text/html");
        res.setCharacterEncoding("utf-8");
        //收集数据
        String user = req.getParameter("username");
        String pass = req.getParameter("password");
        //服务层操作
        IBossService ibs = new BossService();
        String selepass = ibs.selectByName(user);
        //存入跳转
        if("".equals(selepass)){
            System.out.println("错误");
        }else if(pass.equals(selepass)){
            System.out.println("登陆成功");
            //session操作 执行
            HttpSession session = req.getSession(true);
            session.setAttribute("loginuser", user);
            res.sendRedirect("http://localhost:8999/lfw_emp/admView");
        }else{
            System.out.println("执行错误操作!");
            res.sendRedirect("http://localhost:8999/lfw_emp/LoginErrorView");           
        }
    }   
}
  • 注意点
  • 编码格式:国际统一的”UTF-8”格式
  • 收集数据步骤中双引号引起来的内容是HTML文件中的name属性命名的数据。
  • 跳转的路径是” /项目名/web.xml中的命名”或者”/项目名/……/.HTML文件”
  • HttpSession session = req.getSession(true);
    session.setAttribute(“loginuser”, user);
    操作是为了把”user”的数据存在session方法中,并且命名为”loginuser”。session方法可以存一次(set),用多次(get),但是需要注意的是session有自己的生命周期,并且在用户退出的时候需要手动关闭session(!!session的知识点不太理解的可以参见本人的其他文章!!)。

com.view 包
完成登陆以后显示的管理员用户操作的界面,注意此时已经要做强制登陆(不允许在没有登陆的情况下直接访问该页面)操作。

public class admView extends HttpServlet{

@Override
protected void service(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {

    //设置响应
    res.setContentType("text/html;charset=utf-8;");
    //获取输出流
    PrintWriter out = res.getWriter();
    //获取session
    HttpSession session = req.getSession();
    Object o = session.getAttribute("loginuser");
    if(o==null){
        //当前没有绑定用户  跳转登陆
        System.out.println("当前用户为 空跳转");
        res.sendRedirect(req.getContextPath()+"/html/LoginView.html");
    }else{
        String str = (String)o;
        //显示页面
        out.print("<h1 color = 'red' align = 'center'>管理员登陆成功!</h1><hr/>");
        out.print("<h3>当前管理员:"+str+"</h3>");
        out.print("<a href = '/lfw_emp/AllView' >查看所有员工信息</a><br>");
        out.print("<a href = 'http://localhost:8999/lfw_emp/html/RegistView.html' >添加信息</a><br>");
        out.print("<a href = 'http://localhost:8999/lfw_emp/html/LoginView.html' >返回登陆界面</a><br>");
        out.print("<a href = '/lfw_emp/Exit'>安全退出</a>");
        //使用流
        out.flush();            
    }
}
}
  • 注意点
  • req(Request)对请求进行处理(即接收到用户发出的信息)
  • res(Response)对设置回应(即返回给用户的信息)
  • res.setContentType(“text/html;charset=utf-8;”);设置返回到网页上的形式与文本显示的编码类型。
  • 强制登陆操作,实际是session中存储的对象进行查验,如果session中无法获取到对象,则跳转到登陆界面,在这里没有做视觉的优化。
  • PrintWriter out = res.getWriter();获取输出流,即获取到一个要打印在网页上的引用。
  • out.print(str);str是任意字符串,字符串的内容可以是HTML编码。
  • out.flush();提交输出流。
  • 在这里我设置了“查看所有员工信息”和“添加员工信息”两个超链接,在超链接中“href”方法实现跳转功能。



    显示所有员工信息

    AllView.java文件

    public class AllView extends HttpServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    //设置中文的输入输入编码格式
    //设置响应类型
    req.setCharacterEncoding(“utf-8”);
    resp.setContentType(“text/html;charset=utf-8;”);
    resp.setCharacterEncoding(“utf-8”);
    //获取session
    HttpSession session = req.getSession();
    Object o = session.getAttribute(“loginuser”);
    if(o==null){
    //当前没有绑定用户 跳转登陆
    System.out.println(“当前用户为 空跳转”);
    resp.sendRedirect(req.getContextPath()+”/html/LoginView.html”);
    }else{
    String str = (String)o;
    //获得输出流
    PrintWriter out = resp.getWriter();
    out.print(“

    所有员工信息

    “);
    out.print(“
    ”);
    out.print(“

    当前管理员:”+str+”

    “);
    //表单格式
    out.print(“http://localhost:8999/lfw_emp/deleteAction’ method=’post’>”
    +”“);
    //查询所有用户
    IUserService ius = new UserService();
    List userAll = ius.selecAll();
    //遍历
    for (User user : userAll) {
    System.out.println(user);
    out.print( ““);
    out.print( ““);
    out.print( ““);
    out.print( ““);
    out.print( ““);
    out.print( “
    IDuserpassdeleteupdate
    “+user.getId()+”“+user.getUsername()+”“+user.getPassword()+”

6 附录文件

6.1 sql建表文件

t_user.sql

create sequence user_seq; 
create table t_user(
    id number(6) primary key,-- 主键id
    username varchar2(15) unique,--不能重复的用户名
    password varchar2(16) --check(length(password) >5)--密码  6-16位数字
);

t_boss.sql

create sequence boss_seq; 
create table t_boss(
    id number(6) primary key,-- 主键id
    users varchar2(15) unique,--不能重复的用户名
    passs varchar2(16) --check(length(password) >5)--密码  6-16位数字
);

6.2 WEB.XML 文件

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


<servlet>
    <servlet-name>Add</servlet-name>
    <servlet-class>com.nyist.lfw.test.Add</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Add</servlet-name>
    <url-pattern>/Add</url-pattern>
</servlet-mapping>

    <servlet>
    <servlet-name>AddUser</servlet-name>
    <servlet-class>com.nyist.lfw.test.AddUser</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AddUser</servlet-name>
    <url-pattern>/AddUser</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>LoginUser</servlet-name>
    <servlet-class>com.nyist.lfw.test.LoginUser</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>LoginUser</servlet-name>
    <url-pattern>/LoginUser</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>SelectAll</servlet-name>
    <servlet-class>com.nyist.lfw.test.SelectAll</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>SelectAll</servlet-name>
    <url-pattern>/SelectAll</url-pattern>
</servlet-mapping>


<servlet>
    <servlet-name>DeleteUser</servlet-name>
    <servlet-class>com.nyist.lfw.test.DeleteUser</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>DeleteUser</servlet-name>
    <url-pattern>/DeleteUser</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>addAction</servlet-name>
    <servlet-class>com.nyist.lfw.action.addAction</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>addAction</servlet-name>
    <url-pattern>/addAction</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>AllView</servlet-name>
    <servlet-class>com.nyist.lfw.view.AllView</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AllView</servlet-name>
    <url-pattern>/AllView</url-pattern>
</servlet-mapping>


<servlet>
    <servlet-name>LoginOkView</servlet-name>
    <servlet-class>com.nyist.lfw.view.LoginOkView</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>LoginOkView</servlet-name>
    <url-pattern>/LoginOkView</url-pattern>
</servlet-mapping>


<servlet>
    <servlet-name>admView</servlet-name>
    <servlet-class>com.nyist.lfw.view.admView</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>admView</servlet-name>
    <url-pattern>/admView</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>LoginErrorView</servlet-name>
    <servlet-class>com.nyist.lfw.view.LoginErrorView</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>LoginErrorView</servlet-name>
    <url-pattern>/LoginErrorView</url-pattern>
</servlet-mapping>


<servlet>
    <servlet-name>Exit</servlet-name>
    <servlet-class>com.nyist.lfw.action.Exit</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Exit</servlet-name>
    <url-pattern>/Exit</url-pattern>
</servlet-mapping>

<!-- 删除-操作 -->
<servlet>
    <servlet-name>deleteAction</servlet-name>
    <servlet-class>com.nyist.lfw.action.deleteAction</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>deleteAction</servlet-name>
    <url-pattern>/deleteAction</url-pattern>
</servlet-mapping>



<servlet>
    <servlet-name>admAction</servlet-name>
    <servlet-class>com.nyist.lfw.action.admAction</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>admAction</servlet-name>
    <url-pattern>/admAction</url-pattern>
</servlet-mapping>

<!-- 修改  -操作 -->
<servlet>
    <servlet-name>UpdateView</servlet-name>
    <servlet-class>com.nyist.lfw.view.UpdateView</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>UpdateView</servlet-name>
    <url-pattern>/UpdateView</url-pattern>
</servlet-mapping>

    <servlet>
        <servlet-name>UpdateAction</servlet-name>
        <servlet-class>com.nyist.lfw.action.UpdateAction</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UpdateAction</servlet-name>
        <url-pattern>/UpdateAction</url-pattern>
    </servlet-mapping>
    </web-app>







注:为了项目保密性,此处记录是简化代码,仅供学习参考!。
如果有问题请联系本人 :lfw615@foxmain.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值