servlet和jsp的增删改查精.docx
- 文档编号:16914607
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:46
- 大小:119.79KB
servlet和jsp的增删改查精.docx
《servlet和jsp的增删改查精.docx》由会员分享,可在线阅读,更多相关《servlet和jsp的增删改查精.docx(46页珍藏版)》请在冰豆网上搜索。
servlet和jsp的增删改查精
昆明理工大学信息工程与自动化学院学生实验报告
(2013—2014学年第二学期)
课程名称:
JAVAEE技术开课实验室:
信自楼4442013年10月19日
年级、专业、班
计科112
学号
201110405214
姓名
周英明
成绩
实验项目名称
Servlet与JSP编程
指导教师
卫守林
教师评语
教师签名:
年月日
一、实验目的
1、掌握Servlet的请求和响应的编程
2、掌握Servlet与JSP的差异
3、掌握Servlet与JSP的数据交互
4、完成用户管理功能
二.实验内容
完成用户的增加、删除、修改、列表功能,要求页面展示的部分需要用JSP完成,业务逻辑由Servlet完成。
三、步骤及具体实施
(一、视图:
1.用户登录页面:
2.用户管理页面:
3.增加用户:
4.修改:
(二)javaeebean
1.创建数据库表格:
/******ScriptforSelectTopNRowscommandfromSSMS******/
SELECTTOP1000[id]
[name]
[password]
[sex]
[age]
FROM[SQLdata].[dbo].[student]
orderbyid
2.用javaee.bean封装用户信息:
packagejavaee.bean;
/**
*@authorhelp
*封装一条信息的所有属性
*/
publicclassjavabean{
privateintid;
privateStringname;
privateStringpassword;
privateStringsex;
privateintage;
publicintgetId({
returnid;
}
publicvoidsetId(intid{
this.id=id;
}
publicStringgetName({
returnname;
}
publicvoidsetName(Stringname{
this.name=name;
}
publicStringgetPassword({
returnpassword;
}
publicvoidsetPassword(Stringpassword{
this.password=password;
}
publicStringgetSex({
returnsex;
}
publicvoidsetSex(Stringsex{
this.sex=sex;
}
publicintgetAge({
returnage;
}
publicvoidsetAge(intage{
this.age=age;
}
}
3.用javaee.bean封装用户信息:
packagejavaee.bean;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
/**
*@authorhelp
*操作数据库的方法
*/
publicclassSqlBean{
Connectioncon;
PreparedStatementpre;
ResultSetrs;
publicSqlBean(
{
if(rs!
=null;{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver";
}catch(ClassNotFoundExceptione{
e.printStackTrace(;
}
try{
con=DriverManager.getConnection("jdbc:
sqlserver:
//localhost:
1433;DatabaseName=SQLdata","sa","123581321";
}catch(SQLExceptione{
e.printStackTrace(;
}
}
}
/**
*@authorhelp
*
*插入新的一条记录
*@return
*/
publicintgetinsertuser(Stringsql,javabeanjBean
{
intcount=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(SQLExceptione{
e.printStackTrace(;
}
finally
{
try{
pre.close(;
con.close(;
}catch(SQLExceptione{
//TODOAuto-generatedcatchblock
e.printStackTrace(;
}
}
returncount;
}
/**
*@authorhelp
*
*删除一条记录
*@return
*/
publicintgetdeleteuser(Stringsql,intid
{
intcount=0;
try{
pre=con.prepareStatement(sql;
pre.setInt(1,id;
count=pre.executeUpdate(;
}catch(SQLExceptione{
e.printStackTrace(;
}
finally
{
try{
pre.close(;
con.close(;
}catch(SQLExceptione{
//TODOAuto-generatedcatchblock
e.printStackTrace(;
}
}
returncount;
}
/**
*@authorhelp
*
*根据ID查询某一条记录
*@return
*/
publicjavabeangetsearchById(Stringsql,intid
{
javabeanjBean=newjavabean(;
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(SQLExceptione
{
e.printStackTrace(;
}
returnjBean;
}
/**
*@authorhelp
*
*更新某一条记录
*@return
*/
publicintgetupdateuser(Stringsql,javabeanjBean
{
intcount=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(SQLExceptione{
//TODOAuto-generatedcatchblock
e.printStackTrace(;
}
finally
{
try{
pre.close(;
con.close(;
}catch(SQLExceptione{
//TODOAuto-generatedcatchblock
e.printStackTrace(;
}
}
returncount;
}
/**
*@authorhelp
*
*显示所有记录
*@return
*/
publicListgetuserlist(Stringsql
{
Listlist=newArrayList>(;
//获取prepareStatement对象
try{
pre=con.prepareStatement(sql;
rs=pre.executeQuery(;
while(rs.next(
{
javabeanjBean=newjavabean(;
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(SQLExceptione{
//TODOAuto-generatedcatchblock
e.printStackTrace(;
}
finally
{
try{
pre.close(;
con.close(;
}catch(SQLExceptione{
//TODOAuto-generatedcatchblock
e.printStackTrace(;
}
}
returnlist;
}
}
(三)servlet
1.验证码的生成
CheckCodeGet.java
packagejavaee;importjava.io.IOException;
importjava.awt.*;
importjava.awt.image.*;
importjava.util.*;
importjavax.servlet.ServletConfig;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importcom.sun.image.codec.jpeg.JPEGCodec;
importcom.sun.image.codec.jpeg.JPEGImageEncoder;
//生成验证码
@SuppressWarnings("restriction"
publicclassCheckCodeGetextendsHttpServlet
{
privatestaticfinallongserialVersionUID=1L;
privatefinalintTYPE_NUMBER=0;
privatefinalintTYPE_LETTER=1;
privatefinalintTYPE_MULTIPLE=2;
privateintwidth;
privateintheight;
privateintcount;
@SuppressWarnings("unused"
privateinttype;
privateStringvalidate_code;
privateRandomrandom;
privateFontfont;
privateintline;
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse
throwsServletException,IOException
{
response.setHeader("Pragma","No-cache";
response.setHeader("Cache-Control","no-cache";
response.setDateHeader("Expires",0;
response.setContentType("image/jpeg";
StringreqCount=request.getParameter("count";
StringreqWidth=request.getParameter("width";
StringreqHeight=request.getParameter("height";
StringreqType=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=newFont("CourierNew",Font.BOLD,width/count;
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB;
Graphicsg=image.getGraphics(;
g.setColor(getRandColor(200,250;
g.fillRect(0,0,width,height;
g.setColor(getRandColor(160,200;
for(inti=0;i
{
intx=random.nextInt(width;
inty=random.nextInt(height;
intxl=random.nextInt(12;
intyl=random.nextInt(12;
g.drawLine(x,y,x+xl,y+yl;
}
g.setFont(font;
validate_code=getValidateCode(count,1;
request.getSession(.setAttribute("validate_code",validate_code;
for(inti=0;i
{
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.setColor(newColor(20+random.nextInt(110,20+random.nextInt(110,20+random.nextInt(110;
intx=(int(width/count*i;
inty=(int((height+font.getSize(/2-5;
g.drawString(String.valueOf(validate_code.charAt(i,x,y;
}
g.dispose(;
//ImageIO.write(image,"JPEG",response.getOutputStream(;
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(response.getOutputStream(;
encoder.encode(image;
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse
throwsServletException,IOException
{
doGet(request,response;
}
publicvoidinit(ServletConfigconfigthrowsServletException
{
super.init(config;
width=150;
height=50;
count=4;
type=TYPE_NUMBER;
random=newRandom(;
line=200;
}
//
privateColorgetRandColor(intfrom,intto
{
Randomrandom=newRandom(;
if(to>255from=255;
if(to>255to=255;
intrang=Math.abs(to-from;
intr=from+random.nextInt(rang;
intg=from+random.nextInt(rang;
intb=from+random.nextInt(rang;
returnnewColor(r,g,b;
}
//取得验证码字符串
privateStringgetValidateCode(intsize,inttype
{
StringBuffervalidate_code=newStringBuffer(;
for(inti=0;i { validate_code.append(getOneChar(type; } returnvalidate_code.toString(; } //根据验证码类型取得实际验证字符 privateStringgetOneChar(inttype { Stringresult=null; switch(type { caseTYPE_NUMBER: result=String.valueOf(random.nextInt(10; break; caseTYPE_LETTER: result=String.valueOf((char(random.nextInt(26+65; break; caseTYPE_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 { thrownewNullPointerException("获取验证码出错"; } returnresult; } } 2.删除用户 deleteuser.java packagejavaee; importjava.io.IOException; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importjavaee.bean.SqlBean; publicclassdeleteuserextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse throwsServletException,IOException{ response.setContentType("text/html"; doPost(request,response; } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse throwsServletException,IOException{ response.setContentType("text/html"; //获取超链接传来的数据 StringsId=request.getParameter("id"; intid=Integer.parseInt(sId; System.out.println(id; //调用模型层删除方法 Stringsql="deletefromstudentwhereid=? "; SqlBeansBean=newSqlBean(; intcount=sBean.getdeleteuser(sql,id; Stringurl=""; //System.out.println(count; if(count>0 { url="userlist.jsp"; } else { url="error.jsp"; request.setAttrib
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- servlet jsp 增删 改查精
![提示](https://static.bdocx.com/images/bang_tan.gif)