一、选择题
1、一个Servlet可以被映射的虚拟路径个数是( D )。
A、0
B、1
C、2
D、多
2、 下列方法中,哪个不是Servlet接口中的方法( D )。
A、init
B、service
C、getServletInfo
D、getServlet
3、以下哪个是Web服务器( C )。
A、JCreator
B、JBuilder
C、Tomcat
D、Eclipse
4、在表单里,用于发送敏感数据的方法( B )。
A.GET
B.POST
C.PUT
D.OPTIONS
5、下面哪个方法当服务器关闭时被调用,用来释放Servlet所占用的资源( D )。
A、service()
B、doPost()
C、close()
D、destroy()
6、Servlet中的数据能与JSP共享吗?( A )。
A.能,我们可以将Servlet中的数据放入HttpSession,在JSP页面中使用其相对应的内置对象得到我们Servlet中的数据。
B. 不能,HttpSession无法在JSP和Servlet直接传递数据。
C. 不能,我们可以将Servlet中的数据放入HttpServletRequest,在JSP页面中使用其相对应的内置对象得到我们Servlet中的数据。
D.不能,HttpServletRequest无法在JSP和Servlet直接传递数据
7、关于JSP的运行原理,下列说法正确的是( A )。
A、JSP本质上是一个Servlet
B、JSP本质上是一个class文件
C、Servlet容器不能运行JSP
D、上面都是错的
8、启动tomcat 的命令( C )。
A. shutdown.bat
B.javac.exe
C. startup.bat
D. startup.exe
9、下列选项中不属于Servlet生命周期的方法是( D )。
A、init
B、service
C、destroy
D、getServletInfo
10、下列选项中,在web.xml中配置定义Servlet,包括Servlet的名称和Servlet的实现类的结点是( A )。
A、<Servlet>
B、<Servlet-config>
C、<Servlet-mapping>
D、<web-app>
11、 在J2EE中,在一个JSP文件中,有表达式<%=2+3 %>,它将输出( B )。
A、2+3
B、5
C、23
D、输出报错
12、创建Servlet后可以在以下那个文件中对Servlet进行配置( A )。
A、web.xml
B、application.xml
C、config.xml
D、web-config.xml
13、关于get方式提交和post方式提交,说法错误的是( D )。
A.post比get安全且post接收的长度比较长。
B.post是以表单的形式提交请求的,get是以浏览器的形式提交请求的,所以get比较快。
C.post更容易解决我们的中文乱码问题。
D. form的method属性如果不指定,也默认为post请求。
14、在配置Servlet是,可以使用一下哪个注解来映射路径( D )。
A、@Controller
B、@WebService
C、@WebFilter
D、@WebServlet
15、下列不是JSP隐式对象的是( C )。
A、Request
B、out
C、Context
D、Session
16、JSTL是JSP标准标签库,其中用于数据库访问的标签库,前缀是( D )。
A. c
B. x
C. fmt
D. sql
17、在login.JSP中存在以下代码
<form action=”login” method=”post”>
<input type=”text” name=“yourname” id=“myName” value= “username”>
<form>
当表单被提交时,下列选项可以获取到input框的值的是( B )。
A、request.getParameter(“username”)
B、request.getParameter(“yourname”)
C、request.getParameter(“name”)
D、request.getParameter(“myName”)
18、 内建对象request,封装了来至用户的请求,其中返回客户端Cookie的方法是( A )。
A、getCookies
B、getMethod
C、getAttribute
D、setAttribute
二、判断题
- doDestroy()不是servlet的内置方法。 对
Destroy()是servlet内置方法
- tomcat是一个开源的免费的Web 服务器,它支持javaEE所有规范。错
只支持部分JavaEE规范
- form的method属性如果不指定,也默认为post请求。 错
method方法,默认为get请求
- post比get安全且post接收的长度比较长。 对
- Post属于表单的隐式提交信息方法。 对
- 表单提交的信息就封装在HTTP请求消息的信息体部分,用户使用request对象的getParameter方法可以得到通过表单提交的信息。 对
- getgetAttribute (“”)返回一个Object类型对象。 对
- session对象可以用来保存用户会话期间需要保存的数据信息。 对
- Servlet能脱离服务器运行。 错
不能脱离
- 在Servlet生命周期中,destroy方法只能被调用一次。 对
- 使用response.sendRedirect(“”)来实现重定向。 对
- 利用response对象的sendRedirect方法只能实现本网站内的页面跳转,但不能传递参数。 对
- respone对象主要用于向客户端发送数据。 对
- 在Servlet生命周期中,service方法只被调用一次。 错
除了Init和Destory执行一次,service方法执行多次
- 一个Servlet只能映射一个虚拟路径 错
映射多个路径
三、填空题
- 表单标记中的 action 属性用于指定处理表单数据程序url的地址。
- form的method属性如果不指定,默认为 GET 请求。
- get请求比post请求 快 。
- JSP本质上是一个 servlet 。
- 生成的Cookie存储在 浏览器。
- Servlet中使用 getSession 方法获取Session对象。
- Servlet接口只定义了一个服务方法是 service 。
- getAttribute (“”) 返回一个 Object 类型。
- page指令中的import 属性可以在页面中出现 多 次。
-
<url-pattern>
里面的内容必须以 / 开头。
四、代码题(员工管理系统)
采用MVC三层架构
总体建包样式:
首先建立连接数据库部分:在这里一般会遇到的问题可能就是,mysql驱动的问题;一定要记得释放资源
- 一般 8 版本之后的用com.mysql.cj.jdbc.Driver
- 一般 5 版本的用com.mysql.jdbc.Driver
DBUtil.java
package com.blb.util;
import java.sql.*;
/**
* 数据库工具类,连接数据库
*/
public class DBUtil {
// 加载驱动
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//定义数据库初始信息
private final static String user = "xxxx";
private final static String password = "xxxxxxxx";
private final static String url = "jdbc:mysql://localhost:3306/xxx?characterEncoding=utf-8&serverTimezone=GMT%2B8";
//连接数据库
public static Connection getConnection() {
try {
return DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//资源释放
public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// 重载资源释放方法
public static void close(Connection conn, PreparedStatement ps) {
close(conn, ps, null);
}
}
分别建立我们的管理员和员工类(entity)
User.java
package com.blb.entity;
/**
*实体类User,封装属性和方法
*/
public class User {
private int id; //主键,唯一
private String username; //用户名
private String password; //密码
/**
* 全参构造
* @param id
* @param username
* @param password
*/
public User(int id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Emp.java
package com.blb.entity;
public class Emp {
private int id;
private String erpName;
private String deptName;
public Emp(String erpName, String deptName) {
this.erpName = erpName;
this.deptName = deptName;
}
public Emp(int id, String erpName, String deptName) {
this.id = id;
this.erpName = erpName;
this.deptName = deptName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getErpName() {
return erpName;
}
public void setErpName(String erpName) {
this.erpName = erpName;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}
连接数据库之后,开始用JDBC对数据进行增删改查(dao)
UserDao(接口)
package com.blb.dao;
import com.blb.entity.User;
public interface UserDao {
//通过用户名获取用户,查询
User getUserByUserName(User user);
//新增用户
boolean insertUser(User user);
}
EmpDao(接口)
package com.blb.dao;
import com.blb.entity.Emp;
import java.util.List;
public interface EmpDao {
//查询所有的员工信息
List<Emp> getAllErp();
//查询详细员工信息
Emp getEmpById(int id);
//新增员工
boolean insertEmp(Emp emp);
//删除员工
boolean delEmp(int id);
//修改员工信息
boolean updateEmp(Emp emp);
}
UserDaoImpl.java
package com.blb.dao.impl;
import com.blb.dao.UserDao;
import com.blb.entity.User;
import com.blb.util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* UserDao的实现类,做数据库表的增删改查
*/
public class UserDaoImpl implements UserDao {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs =null;
/**
* 通过用户名从数据库查询用户信息,并返回
* idea提示快捷键alt+enter
* @param user
* @return
*/
@Override
public User getUserByUserName(User user) {
//写数据查询
//获取连接
conn = DBUtil.getConnection();
User user1 = null;
//Sql语句
String sql = "select * from user where u_name = ?";
try {
//预编译
ps=conn.prepareStatement(sql);
//值的插入
ps.setString(1,user.getUsername());
//查询
rs = ps.executeQuery();
while (rs.next()){
int id = rs.getInt("id");
String username = rs.getString("u_name");
String password = rs.getString("u_pwd");
//实例化User对象
user1 = new User(id,username,password);
//System.out.println(user1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return user1;
}
@Override
public boolean insertUser(User user) {
conn = DBUtil.getConnection();
String sql = "insert into user (u_name,u_pwd) values(?,?)";
//
try {
ps = conn.prepareStatement(sql);
ps.setString(1,user.getUsername());
ps.setString(2,user.getPassword());
int count = ps.executeUpdate();
return count>0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
EmpDaoImpl.java
package com.blb.dao.impl;
import com.blb.dao.EmpDao;
import com.blb.entity.Emp;
import com.blb.util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class EmpDaoImpl implements EmpDao {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
/**
* 查询所有员工信息
*
* @return 存储员工对象的集合
*/
@Override
public List<Emp> getAllErp() {
List<Emp> emps = new ArrayList<>();
conn = DBUtil.getConnection();
String sql = "select * from erp";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt("s_id");
String erpName = rs.getString("s_name");
String deptName = rs.getString("dept_name");
Emp emp = new Emp(id, erpName, deptName);
emps.add(emp);
}
} catch (SQLException e) {
e.printStackTrace();
}
return emps;
}
/**
* 通过id查询对应员工的详细信息
* @param id
* @return emp对象
*/
@Override
public Emp getEmpById(int id) {
conn = DBUtil.getConnection();
String sql = "Select * from erp where s_id = ?";
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
rs = ps.executeQuery();
while (rs.next()){
int sid = rs.getInt("s_id");
String erpName = rs.getString("s_name");
String deptName = rs.getString("dept_name");
Emp emp = new Emp(sid,erpName,deptName);
return emp;
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 新增员工
* @param emp
* @return 布尔信息
*/
@Override
public boolean insertEmp(Emp emp) {
conn = DBUtil.getConnection();
String sql = "insert into erp (s_name,dept_name) values(?,?)";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,emp.getErpName());
ps.setString(2,emp.getDeptName());
int count = ps.executeUpdate();
return count>0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
/**
* 删除员工
* @param id
* @return 布尔值
*/
@Override
public boolean delEmp(int id) {
conn = DBUtil.getConnection();
String sql = "delete from erp where s_id = ?";
try {
ps = conn.prepareStatement(sql);
ps.setInt(1,id);
int count = ps.executeUpdate();
return count>0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
@Override
public boolean updateEmp(Emp emp) {
conn = DBUtil.getConnection();
String sql = "update erp set s_name =? , dept_name = ? where s_id = ?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,emp.getErpName());
ps.setString(2,emp.getDeptName());
ps.setInt(3,emp.getId());
int count = ps.executeUpdate();
return count>0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
service层
UserService(接口)
package com.blb.service;
import com.blb.entity.User;
/**
* service接口,一个login(登录判断)
*/
public interface UserService {
//user其实是servlet获取到的用户信息,封装的user对象
boolean login(User user);
//注册方法
boolean register(User user);
}
EmpService(接口)
package com.blb.service;
import com.blb.entity.Emp;
import java.util.List;
public interface EmpService {
List<Emp> getAllErp();
Emp getEmpById(int id);
boolean insertEmp(Emp emp);
boolean delEmp(int id);
boolean updateEmp(Emp emp);
}
UserServiceImpl.java
package com.blb.service.impl;
import com.blb.dao.UserDao;
import com.blb.dao.impl.UserDaoImpl;
import com.blb.entity.User;
import com.blb.service.UserService;
public class UserServiceImpl implements UserService {
UserDao userDao = new UserDaoImpl();
/**
* 登录的实现方法
* @param user
* @return
*/
@Override
public boolean login(User user) {
User user1 = userDao.getUserByUserName(user);
if (user1==null){
return false;
}else if (!user.getPassword().equals(user1.getPassword())){
return false;
}
return true;
}
/**
* 注册的实现方法
* @param user
* @return
*/
@Override
public boolean register(User user) {
System.out.println(userDao.getUserByUserName(user));
if (userDao.getUserByUserName(user)!=null){
return false;
} if (userDao.insertUser(user)==false){
return false;
}
return true;
}
}
EmpServiceImpl.java
package com.blb.service.impl;
import com.blb.dao.EmpDao;
import com.blb.dao.impl.EmpDaoImpl;
import com.blb.entity.Emp;
import com.blb.service.EmpService;
import java.util.List;
public class EmpServiceImpl implements EmpService {
EmpDao empDao = new EmpDaoImpl();
@Override
public List<Emp> getAllErp() {
return empDao.getAllErp();
}
@Override
public Emp getEmpById(int id) {
return empDao.getEmpById(id);
}
@Override
public boolean insertEmp(Emp emp) {
return empDao.insertEmp(emp);
}
@Override
public boolean delEmp(int id) {
return empDao.delEmp(id);
}
@Override
public boolean updateEmp(Emp emp) {
return empDao.updateEmp(emp);
}
}
Servlet层:对接我们的JSP页面
DoAddServlet.java
package com.blb.servlet;
import com.blb.entity.Emp;
import com.blb.service.EmpService;
import com.blb.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/doAdd")
public class DoAddServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取jsp页面的员工信息
String empName = req.getParameter("empName");
String deptName = req.getParameter("deptName");
//封装员工对象
Emp emp = new Emp(empName,deptName);
//实例化empService
EmpService empService = new EmpServiceImpl();
//获取新增结果
boolean res = empService.insertEmp(emp);
//如果成功,则返回首页,失败则提示信息
if (res){
req.getRequestDispatcher("/toIndex").forward(req,resp);
}else{
req.setAttribute("msg","新增失败");
req.getRequestDispatcher("/add.jsp").forward(req,resp);
}
}
}
DoDeleteServlet.java
package com.blb.servlet;
import com.blb.service.EmpService;
import com.blb.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/doDelete")
public class DoDeleteServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int id = Integer.parseInt(req.getParameter("id"));
EmpService empService = new EmpServiceImpl();
boolean res = empService.delEmp(id);
if(res){
req.getRequestDispatcher("/toIndex").forward(req,resp);
}else {
req.setAttribute("msg","删除失败");
req.getRequestDispatcher("/toIndex").forward(req,resp);
}
}
}
DoRegisterServlet.java
package com.blb.servlet;
import com.blb.entity.User;
import com.blb.service.UserService;
import com.blb.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/doRegister")
public class DoRegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
UserService userService = new UserServiceImpl();
//获取jsp页面数据
String username = req.getParameter("username");
String password = req.getParameter("password");
//实例化User对象
User user = new User(username,password);
boolean res = userService.register(user);
System.out.println(res);
if (res){
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}else {
req.getRequestDispatcher("/register.jsp").forward(req,resp);
}
}
}
DoSelectServlet.java
package com.blb.servlet;
import com.blb.entity.Emp;
import com.blb.service.EmpService;
import com.blb.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/doSelect")
public class DoSelectServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
HttpSession session = req.getSession();
int id = Integer.parseInt(req.getParameter("id"));
EmpService empService = new EmpServiceImpl();
Emp emp = empService.getEmpById(id);
session.setAttribute("emp",emp);
req.getRequestDispatcher("/xq.jsp").forward(req,resp);
}
}
DoUpdateServlet.java
package com.blb.servlet;
import com.blb.entity.Emp;
import com.blb.service.EmpService;
import com.blb.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/doUpdate")
public class DoUpdateServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取jsp页面的员工信息
String empName = req.getParameter("empName");
String deptName = req.getParameter("deptName");
int id = Integer.parseInt(req.getParameter("id"));
//封装员工对象
Emp emp = new Emp(id,empName,deptName);
//实例化empService
EmpService empService = new EmpServiceImpl();
boolean res = empService.updateEmp(emp);
if(res){
req.getRequestDispatcher("/toIndex").forward(req,resp);
}else {
req.setAttribute("msg","更新失败");
req.getRequestDispatcher("/toIndex").forward(req,resp);
}
}
}
IndexServlet.java
package com.blb.servlet;
import com.blb.entity.Emp;
import com.blb.service.EmpService;
import com.blb.service.impl.EmpServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@WebServlet("/toIndex")
public class IndexServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//
HttpSession session = req.getSession();
EmpService empService = new EmpServiceImpl();
List<Emp> emps = empService.getAllErp();
session.setAttribute("emps", emps);
resp.sendRedirect("/User_demo_war_exploded/index.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
LoginServlet.java
package com.blb.servlet;
import com.blb.entity.User;
import com.blb.service.UserService;
import com.blb.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//实例化Service对象
UserService userService = new UserServiceImpl();
//从jsp页面的请求获取用户名和密码
String username = req.getParameter("username");
String password = req.getParameter("password");
//实例化User对象
User user = new User(username,password);
//登录判断
boolean result = userService.login(user);
if (result){
req.setAttribute("username",username);
req.getRequestDispatcher("/toIndex").forward(req,resp);
}else {
req.setAttribute("msg","用户名或密码错误");
req.getRequestDispatcher("/login.jsp").forward(req,resp);
}
}
}
ToAddServlet.java
package com.blb.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/toAdd")
public class ToAddServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/User_demo_war_exploded/add.jsp");
}
}
ToRegisterServlet.java
package com.blb.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/toRegister")
public class ToRegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/User_demo_war_exploded/register.jsp");
}
}
JSP页面
添加用户:
<html>
<head>
<title>Title</title>
</head>
<body>
${msg}
<form action="doAdd">
姓名:<input type="text" name="empName"><br>
部门:<select name="deptName">
<option>人力资源</option>
<option selected>市场</option>
<option>财务</option>
<option>研发部</option>
</select>
<input type="submit" value="添加">
</form>
</body>
</html>
首页:
<html>
<head>
<title>$Title$</title>
</head>
<body>
${msg}
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th>员工编号</th>
<th>姓名</th>
<th>部门名称</th>
<th>操作</th>
</tr>
<c:forEach items="${emps}" var="emp">
<tr>
<td>${emp.id}</td>
<td><a href="/User_demo_war_exploded/doSelect?id=${emp.id}">${emp.erpName}</a></td>
<td>${emp.deptName}</td>
<td><a href="/User_demo_war_exploded/doDelete?id=${emp.id}">删除</a>/
<a href="/User_demo_war_exploded/doSelect?id=${emp.id}">修改</a></td>
</tr>
</c:forEach>
<tr>
<td colspan="4"><a href="/User_demo_war_exploded/toAdd">添加</a></td>
</tr>
</table>
</body>
</html>
管理员登录:
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="login" method="post">
账号:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="登录">
</form>
<a href="/User_demo_war_exploded/toRegister">没有账号?去注册</a>
<p><%=request.getAttribute("msg")%></p>
<script>
<%--如果p标签里面放的是空,我就改它的属性 display:none --%>
<%-- 获取元素 --%>
var p = document.querySelector("p");
if (p.innerHTML=="null"){
p.style.display="none";
}else {
p.style.display="block";
}
</script>
</body>
</html>
管理员注册页面:
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="doRegister">
账号:<input type="text" name="username">
密码:<input type="password" name="password">
<input type="submit" value="注册">
</form>
</body>
</html>
修改员工信息页面:
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="doUpdate">
编号:<input type="text" value="${sessionScope.emp.id}" readonly name="id"><br>
姓名:<input type="text" value="${sessionScope.emp.erpName}" name="empName"><br>
部门:<input type="text" value="${sessionScope.emp.deptName}" name="deptName">
<input type="submit" value="修改">
</form>
</body>
</html>