昆明理工大学信息工程与自动化学院学生实验报告 ( 2013 —2014 学年 第 二 学期 )
课程名称:JAVA EE技术 开课实验室:信自楼444 2013 年 10 月 19 日
年级、计科112 专业、班
学号 201110405214 姓名 周英成
明 绩
实验项Servlet与JSP编程 目名称 指导卫守林 教师
教师评教师签名: 语
年 月 日
一、实验目的
1、掌握Servlet的请求和响应的编程 2、掌握Servlet与JSP的差异 3、掌握Servlet与JSP的数据交互 4、完成用户管理功能 二.实验内容
完成用户的增加、删除、修改、列表功能,要求页面展示的部分需要用JSP完成,业务逻辑由Servlet完成。 三、步骤及具体实施 (一、视图:
1.用户登录页面:
2.用户管理页面:
3.增加用户:
4.修改:
(二)javaeebean 1.创建数据库表格:
/****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [id] ,[name] ,[password] ,[sex] ,[age]
FROM [SQLdata].[dbo].[student] order by id
2.用javaee.bean封装用户信息: package javaee.bean; /**
* @author help *封装一条信息的所有属性 */
public class javabean {
private int id; private String name; private String password;
private String sex; private int age; public int getId( { return id; }
public void setId(int id { this.id = id; }
public String getName( { return name; }
public void setName(String name { this.name = name; }
public String getPassword( { return password; }
public void setPassword(String password { this.password = password; }
public String getSex( { return sex;
}
public void setSex(String sex { this.sex = sex; }
public int getAge( { return age; }
public void setAge(int age { this.age = age; } }
3.用javaee.bean封装用户信息: package javaee.bean; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; /**
* @author help *操作数据库的方法 */
public class SqlBean {
Connection con; PreparedStatement pre; ResultSet rs; public SqlBean( {
if(rs!=null;{ try {
Class.forName(\"com.microsoft.sqlserver.jdbc.SQLServerDriver\"; } catch (ClassNotFoundException e { e.printStackTrace(; } try {
con=DriverManager.getConnection(\"jdbc:sqlserver://localhost:1433;DatabaseName=SQLdata\
} catch (SQLException e { e.printStackTrace(; } } } /**
* @author help *
*插入新的一条记录 * @return */
public int getinsertuser(String sql,javabean jBean {
int count =0; try {
pre = con.prepareStatement(sql; pre.setInt(1,jBean.getId(; pre.setString(2,jBean.getName(; pre.setString(3,jBean.getPassword(; pre.setString(4,jBean.getSex(; pre.setInt(5,jBean.getAge(; count=pre.executeUpdate(; } catch (SQLException e { e.printStackTrace(; } finally { try { pre.close(; con.close(;
} catch (SQLException e {
// TODO Auto-generated catch block e.printStackTrace(; } }
return count;
} /**
* @author help *
*删除一条记录 * @return */
public int getdeleteuser(String sql,int id {
int count =0; try {
pre = con.prepareStatement(sql; pre.setInt(1, id;
count=pre.executeUpdate(; } catch (SQLException e { e.printStackTrace(; } finally { try { pre.close(; con.close(;
} catch (SQLException e {
// TODO Auto-generated catch block e.printStackTrace(;
} }
return count; } /**
* @author help *
*根据ID查询某一条记录 * @return */
public javabean getsearchById(String sql,int id {
javabean jBean = new javabean(; try {
pre = con.prepareStatement(sql; pre.setInt(1, id; rs=pre.executeQuery(; while(rs.next( {
jBean.setId(rs.getInt(\"id\"; jBean.setName(rs.getString(\"name\";
jBean.setPassword(rs.getString(\"password\"; jBean.setSex(rs.getString(\"sex\"; jBean.setAge(rs.getInt(\"age\"; }
} catch (SQLException e {
e.printStackTrace(; }
return jBean; } /**
* @author help *
*更新某一条记录 * @return */
public int getupdateuser(String sql,javabean jBean {
int count =0; try {
pre = con.prepareStatement(sql; pre.setInt(5,jBean.getId(; pre.setString(1,jBean.getName(; pre.setString(2,jBean.getPassword(; pre.setString(3,jBean.getSex(; pre.setInt(4,jBean.getAge(; count = pre.executeUpdate(; } catch (SQLException e {
// TODO Auto-generated catch block
e.printStackTrace(; } finally { try { pre.close(; con.close(;
} catch (SQLException e {
// TODO Auto-generated catch block e.printStackTrace(; } }
return count; } /**
* @author help *
*显示所有记录 * @return */
public List getuserlist(String sql {
List list = new ArrayList >( ; //获取prepareStatement对象 try {
pre = con.prepareStatement(sql; rs =pre.executeQuery(;
while(rs.next( {
javabean jBean =new javabean(; jBean.setId(rs.getInt(\"id\"; jBean.setName(rs.getString(\"name\";
jBean.setPassword(rs.getString(\"password\"; jBean.setSex(rs.getString(\"sex\"; jBean.setAge(rs.getInt(\"age\"; list.add(jBean; }
} catch (SQLException e {
// TODO Auto-generated catch block e.printStackTrace(; } finally { try { pre.close(; con.close(;
} catch (SQLException e {
// TODO Auto-generated catch block e.printStackTrace(; }
}
return list; } }
(三)servlet 1. 验证码的生成
CheckCodeGet.java
package javaee;import java.io.IOException; import java.awt.*; import java.awt.image.*; import java.util.*;
import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; //生成验证码
@SuppressWarnings(\"restriction\"
public class CheckCodeGet extends HttpServlet {
private static final long serialVersionUID = 1L; private final int TYPE_NUMBER = 0; private final int TYPE_LETTER = 1;
private final int TYPE_MULTIPLE = 2; private int width; private int height; private int count;
@SuppressWarnings(\"unused\" private int type;
private String validate_code; private Random random; private Font font; private int line;
public void doGet(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException {
response.setHeader(\"Pragma\ response.setHeader(\"Cache-Control\ response.setDateHeader(\"Expires\ response.setContentType(\"image/jpeg\";
String reqCount = request.getParameter(\"count\"; String reqWidth = request.getParameter(\"width\"; String reqHeight = request.getParameter(\"height\"; String reqType = request.getParameter(\"type\"; if(reqCount!=null && reqCount!=\"\"this.count = Integer.parseInt(reqCount;
if(reqWidth!=null && reqWidth!=\"\"this.width = Integer.parseInt(reqWidth;
if(reqHeight!=null && reqHeight!=\"\"this.height = Integer.parseInt(reqHeight;
if(reqType!=null && reqType!=\"\"this.type = Integer.parseInt(reqType;
font = new Font(\"Courier New\ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB;
Graphics g = image.getGraphics(; g.setColor(getRandColor(200,250; g.fillRect(0, 0, width, height; g.setColor(getRandColor(160,200; for (int i=0;i {
int x = random.nextInt(width; int y = random.nextInt(height; int xl = random.nextInt(12; int yl = random.nextInt(12; g.drawLine(x,y,x+xl,y+yl; }
g.setFont(font;
validate_code = getValidateCode(count,1;
request.getSession(.setAttribute(\"validate_codee_code;
for (int i=0;i {
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.setColor(new
Color(20+random.nextInt(110,20+random.nextInt(110,20+random.nextInt(110;
int x = (int(width/count*i;
int y = (int((height+font.getSize(/2-5;
g.drawString(String.valueOf(validate_code.charAt(i,x,y; }
g.dispose(;
//ImageIO.write(image, \"JPEG\response.getOutputStream(;
JPEGImageEncoder encoder =
JPEGCodec.createJPEGEncoder(response.getOutputStream(;
encoder.encode(image; }
public void doPost(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException {
doGet(request,response; }
public void init(ServletConfig config throws ServletException
{
super.init(config; width = 150; height = 50; count = 4;
type = TYPE_NUMBER;
random = new Random(; line = 200; } //
private Color getRandColor(int from,int to {
Random random = new Random(; if(to>255 from=255; if(to>255 to=255;
int rang = Math.abs(to - from; int r=from+random.nextInt(rang; int g=from+random.nextInt(rang; int b=from+random.nextInt(rang; return new Color(r,g,b; }
//取得验证码字符串
private String getValidateCode(int size,int type {
StringBuffer validate_code = new StringBuffer(; for(int i = 0; i < size; i++ {
validate_code.append(getOneChar(type; }
return validate_code.toString(; }
//根据验证码类型取得实际验证字符 private String getOneChar(int type {
String result = null; switch(type {
case TYPE_NUMBER:
result = String.valueOf(random.nextInt(10; break;
case TYPE_LETTER:
result = String.valueOf((char(random.nextInt(26+65; break;
case TYPE_MULTIPLE: if(random.nextBoolean( {
result = String.valueOf(random.nextInt(10; } else {
result = String.valueOf((char(random.nextInt(26+65; } break; default: result=null; break;
}
if(result==null {
throw new NullPointerException(\"获取验证码出错\"; }
return result; } }
2. 删除用户
deleteuser.java package javaee;
import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javaee.bean.SqlBean;
public class deleteuser extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { response.setContentType(\"text/html\"; doPost(request,response; }
public void doPost(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { response.setContentType(\"text/html\"; //获取超链接传来的数据
String sId = request.getParameter(\"id\"; int id =Integer.parseInt(sId; System.out.println(id; //调用模型层删除方法
String sql = \"delete from student where id=?\"; SqlBean sBean = new SqlBean(;
int count =sBean.getdeleteuser(sql, id; String url=\"\";
//System.out.println(count; if(count>0 {
url=\"userlist.jsp\"; } else {
url =\"error.jsp\";
request.setAttribute(\"error\删除\"; } //转发
request.getRequestDispatcher(url.forward(request, response;
} }
3. 增加用户
insertuser.java package javaee;
import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javaee.bean.SqlBean; import javaee.bean.javabean;
public class insertuser extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { response.setContentType(\"text/html\"; doPost(request,response; }
public void doPost(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { response.setContentType(\"text/html\"; request.setCharacterEncoding(\"utf-8\"; response.setCharacterEncoding(\"utf-8\";
//获取前台页面数据
String sid = request.getParameter(\"id\"; String name =request.getParameter(\"name\";
String password =request.getParameter(\"password\"; String sex =request.getParameter(\"sex\"; String sage = request.getParameter(\"age\"; int age =Integer.parseInt(sage; int id =Integer.parseInt(sid; //封装到JavaBean对象中去
javabean jBean = new javabean(; jBean.setId(id; jBean.setName(name;
jBean.setPassword(password; jBean.setSex(sex; jBean.setAge(age; //调用模型层
String sql = \"insert into
student(id,name,password,sex,age values(?,?,?,?,?\";
SqlBean sBean = new SqlBean(;
int count =sBean.getinsertuser(sql,jBean; @SuppressWarnings(\"unused\" String url=\"\"; if(count>0 {
url=\"userlist.jsp\";
} else {
url =\"error.jsp\";
request.setAttribute(\"error\ } //转发
request.getRequestDispatcher(\"userlist.jsp\".forward(request, response;
} }
4. 用户登录
LoginActionsql.java package javaee;
import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet;
import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
@SuppressWarnings(\"serial\"
public class LoginActionsql extends HttpServlet { /**
* Constructor of the object. */
String driverName=null; String url=null; String user=null; String pass=null; public LoginActionsql( { super(; } /**
* Destruction of the servlet.
*/
public void destroy( {
super.destroy(; // Just puts \"destroy\" string in log // Put your code here }
public void doGet(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { doPost(request,response; }
public void doPost(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { String id=request.getParameter(\"id\";
String password=request.getParameter(\"password\"; String checkCode=request.getParameter(\"checkcode\"; if(id!=null &&
id.trim(.length(!=0&&password.trim(.length(!=0 {
String sql=\"select * from student where id=? and password=?\"; Connection cn=null; boolean check=false; try{
Class.forName(driverName;
cn=DriverManager.getConnection(url, user, pass; PreparedStatement ps=cn.prepareStatement(sql; ps.setString(1,id; ps.setString(2,password; ResultSet rs=ps.executeQuery(; if(rs.next( {
System.out.println(id+password+checkCode; check=true; }
rs.close(; ps.close(;
}catch (Exception e
{
response.sendRedirect(\"login.jsp\"; return; } finally{ try{ cn.close(;
}catch(Exception e{} }
if (check {
HttpSession session=request.getSession(true; session.setAttribute(\"name\
session.setAttribute(\"password\response.sendRedirect(\"userlist.jsp\"; System.out.println(id; return; }else {
response.sendRedirect(\"login.jsp\"; return; } } }
public void init(ServletConfig config throws ServletException { // Put your code here super.init(config;
driverName=config.getInitParameter(\"driverName\"; url=config.getInitParameter(\"url\"; user=config.getInitParameter(\"user\"; pass=config.getInitParameter(\"pass\"; } }
5、用户查询
searchById.java
package javaee;
import java.io.IOException;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javaee.bean.javabean; import javaee.bean.SqlBean;
public class searchById extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { doPost(request,response;
}
public void doPost(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { response.setContentType(\"text/html\"; request.setCharacterEncoding(\"utf-8\"; response.setCharacterEncoding(\"utf-8\"; //获取用户ID
String sid = request.getParameter(\"id\"; int id =Integer.parseInt(sid; //System.out.println(id;
String sql =\"select * from student where id=?\"; SqlBean sBean = new SqlBean(;
javabean jBean = sBean.getsearchById(sql, id; //用户ID
request.setAttribute(\"id\//用户姓名
request.setAttribute(\"name\//用户密码
request.setAttribute(\"password\//用户性别 String sex=\"\"; String man=\"\"; String woman=\"\"; if(jBean.getSex(!=null
{
sex=jBean.getSex(.trim(; if(sex.equals(\"男\" {
man =\"checked\"; } else {
woman =\"checked\"; } }
request.setAttribute(\"man\request.setAttribute(\"woman\//用户年龄
request.setAttribute(\"age\//转发
request.getRequestDispatcher(\"updateuser.jsp\".forward(request, response; } }
6、用户修改
updateuser.java
package javaee;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javaee.bean.javabean; import javaee.bean.SqlBean;
public class updateuser extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { doPost(request,response; }
public void doPost(HttpServletRequest request, HttpServletResponse response
throws ServletException, IOException { response.setContentType(\"text/html\"; request.setCharacterEncoding(\"utf-8\"; response.setCharacterEncoding(\"utf-8\"; //获得前台表单信息
String sid = request.getParameter(\"id\"; int id =Integer.parseInt(sid; System.out.println(id;
String name =request.getParameter(\"name\";
String password =request.getParameter(\"password\"; String sex =request.getParameter(\"sex\"; String sage = request.getParameter(\"age\";
int age =Integer.parseInt(sage; //封装到JavaBean对象中去
javabean jBean = new javabean(; jBean.setId(id; jBean.setName(name;
jBean.setPassword(password; jBean.setSex(sex; jBean.setAge(age;
String sql =\"update student set
name=?,password=?,sex=?,age=? where id=?\"; SqlBean sBean = new SqlBean(;
int count =sBean.getupdateuser(sql,jBean; @SuppressWarnings(\"unused\" String url=\"\"; if(count>0 {
url=\"userlist.jsp\"; } else {
url =\"error.jsp\";
request.setAttribute(\"error\更新\"; }
request.getRequestDispatcher(\"userlist.jsp\".forward(request, response; }
}
(四)、jsp 1、错误页面: error.jsp
<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%> <%
String path = request.getContextPath(;
String basePath =
request.getScheme(+\"://\"+request.getServerName(+\":\"+request.getServerPort(+path+\"/\"; %>
DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
对不起!您<%=request.getAttribute(\"error\" %>失败 body> html> 2、登录页面: login.jsp
<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"UTF-8\"%>
<%
String path = request.getContextPath(;
String basePath =
request.getScheme(+\"://\"+request.getServerName(+\":\"+request.getServerPort(+path+\"/\"; %>
DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">
Copyright © 2019- huatuo3.com 版权所有 蜀ICP备2023022190号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务