南昌航空大学实验报告2-JavaBean和Servlet完成增删改查
Servlet和JavaBean开发实验报告
一、实验目的1.掌握jsp的javabean相关知识2.能熟练使用javabean编写程序实现对数据库的访问(增、删、改、查操作)二、主要仪器设备微型计算机、Windows操作系统,MyEclipse软件。
三、实验原理与方法运行一个Servlet时,首先要将编写好的.java文件打包成一个.class文件,然后将打包好的文件添加到Tomcat容器中,启动容器,通过已经设置好的地址就可以访问对应的Servlet。
而且可以运用转发和重定向的方法来向服务器发送请求。
四、实验主要内容1.新建一个login.html文件,实现登录的页面。
2.打开数据库,在数据库里面新建一个登录信息表,然后再新建一个login.html文件,通过连接数据库获取表中的信息,来登录tedu系统。
五、实验主要步骤与实验结果1、实验主要操作过程登录界面主要步骤如下:(1)打开MyEclipse软件,新建一个web project,命名为“MyWeb_04”,在“sr c”下新建包“web”,并且在里面新建HelloServlet.java、LoginWeb.java、User.java 三个文件。
(2)在LoginWeb.java文件中编写代码,实现对用户输入数据的判断,如果用户名和密码都匹配的话,就调用success.html文件,输出“欢迎小主回来”,否则,就调用error.html文件,输出“小主的网页走丢了”。
(3)在WebRoot的WEB_INF目录下添加web.xml文件,并配置访问路径。
(4)在WebRoot的根目录下新建error.html、success.html、login.html、userlist.jsp等文件,实现网页的登陆。
(5)打开浏览器,在地址栏中输入地址:localhost:8080/WebRoot/login.html,即可实现登录页面。
Tedu系统的登陆:(1)将项目名为oa_01的web project中的部分文件导入到MyEclipse中,打开数据库软件的命令窗口,在里面输入以下命令:create database tedu;use tedu;create table user(id int primary key auto_increment,uname varchar(40),password varchar(20),age int(11),sex varchar(15),salary int);insert into user values(null,'jack','1234',16,'man',1000);(2)在数据库创建成功后,在“sr c”下新建包“web”,并且在里面新建DBUtis.java、LoginWeb.java、User.java三个文件。
JDBC+Servlet+JSP的学生案例增删改查
JDBC+Servlet+JSP的学⽣案例增删改查数据库信息传输到页⾯实现。
先进⾏学⽣信息页⾯展⽰:接⼝IStudentDaopublic interface IStudentDao {/*** 保存操作* @param stu 学⽣对象,封装了需要保存的对象*/void save(Student stu);/*** 删除操作* @param id 被删除学⽣的主键操作*/void delete(Long id);/**** @param id 被更改学⽣的主键值* @param newStu 学⽣新的信息*/void update(Student newStu);/*** 查询指定id的学⽣对象* @param id 被查询学⽣的主键值* @return如果id存在,返回学⽣对象,否则为null*/Student get(Long id);/*** 查询并返回所有学⽣对象* @return如果结果集为空,返回⼀个空的list对象*/List<Student> listall();}IStudentDaoImplpublic class IStudentDaoImpl implements IStudentDao{public void save(Student stu) {String sql ="insert into t_student (name,age) values (?,?)";PreparedStatement ps = null;//贾琏Connection conn = null;try {conn = JDBCUtil.getConn();ps = conn.prepareStatement(sql);//欲ps.setString(1, stu.getName());ps.setInt(2, stu.getAge());ps.executeUpdate();//执⾏} catch (SQLException e) {e.printStackTrace();}JDBCUtil.close(conn, ps, null);//事务}@Overridepublic void delete(Long id) {String sql ="delete from t_student where id = ?";PreparedStatement ps =null;//贾琏Connection conn = null;try {conn = JDBCUtil.getConn();ps =conn.prepareStatement(sql);ps.setLong(1, id);ps.executeUpdate();}JDBCUtil.close(conn, ps, null);}//update t_student set name='xx',age=17 where id=12@Overridepublic void update(Student stu) {String sql="update t_student set name =? ,age=? where id=?"; PreparedStatement ps =null;//贾琏Connection conn =null;try {conn = JDBCUtil.getConn();ps=conn.prepareStatement(sql);ps.setString(1, stu.getName());ps.setInt(2, stu.getAge());ps.setLong(3, stu.getId());ps.executeUpdate();} catch (Exception e) {e.printStackTrace();}JDBCUtil.close(conn, ps, null);}public Student get(Long id) {String sql ="select * from t_student where id=?";PreparedStatement ps =null;//贾琏Connection conn =null;ResultSet rs = null;try {conn = JDBCUtil.getConn();ps = conn.prepareStatement(sql);ps.setLong(1, id);rs= ps.executeQuery();if (rs.next()) {Student stu = new Student();stu.setId(rs.getLong("id"));stu.setName(rs.getString("name"));stu.setAge(rs.getInt("age"));return stu;}} catch (Exception e) {e.printStackTrace();}JDBCUtil.close(conn, ps, rs);return null;}@Overridepublic List<Student> listall() {List<Student> list = new ArrayList<>();String sql ="select * from t_student";PreparedStatement ps = null;Connection conn = null;ResultSet rs =null;try {conn = JDBCUtil.getConn();ps = conn.prepareStatement(sql);rs = ps.executeQuery();while(rs.next()){Student stu = new Student();stu.setId(rs.getLong("id"));stu.setName(rs.getString("name"));stu.setAge(rs.getInt("age"));list.add(stu);}}finally {JDBCUtil.close(conn, ps, rs);}return list;}domain类public class Student {private Long id;private String name;private Integer age;public Student(){}public Student(String name,Integer age){this.age=age;=name;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";}}设计个util类,⽅便维护public class JDBCUtil {private static DataSource ds =null;static{//当JDBCUtil执⾏后,直接加载⾄JVM就⽴即执⾏try {Properties p = new Properties();p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties")); ds = DruidDataSourceFactory.createDataSource(p);} catch (Exception e) {e.printStackTrace();}}public static Connection getConn(){try {return ds.getConnection();} catch (SQLException e) {e.printStackTrace();}return null;}public static void close(Connection conn,Statement st,ResultSet rs){try {if (rs!=null) {rs.close();}} catch (Exception e) {}finally {try {if (st!=null) {st.close();}} catch (Exception e) {e.printStackTrace();}finally {try {if (conn!=null) {conn.close();}} catch (Exception e) {e.printStackTrace();}}}}}在⽹页展⽰全部信息,将数据⽤student传输过去,在前台获取。
实验报告JSP(完成增删改查)
南通大学信息科学技术学院2020-2021学年第二学期《Java Web开发技术》实验报告实验名称:实验八用model2模式操作userinfo表班级:物联网192 姓名:谢焘学号: 1930110689实验日期: 2021 年 6 月 16 日1、实验目的与要求:1)理解Jsp servlet 和Jsp JavaBean的工作原理,掌握使用Jsp servlet 和Jsp JavaBean的基本方法。
2)设计一组Servlet,分别对增删改啥四种请求与数据进行转发,由JavaBean操作数据库,对数据库施行增删改查操作。
2、实验原理或程序设计思路:1) JDBC(Java DataBase Connectivity)就是Java数据库连接,其实就是用J ava语言来操作数据库。
原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
2) Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
3)JSP JavaBean:JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范。
JavaBean 与其它 Java 类相比而言有一些独一无二的特征:提供一个默认的无参构造函数。
需要被序列化并且实现了 Serializable 接口。
可能有一系列可读写属性。
可能有一系列的 getter 或 setter 方法。
3、实验过程、程序运行效果截图及关键代码段:1)在Eclipse中创建一个工程,工程命名:p0689_82)创建s0689.bean包,并创建以下类DBcon.java Userinfo.java UserinfoDao.java UserinfoImpl.java 以上四个文件已经在实验5中完成,此处不详细给出。
javaBean实验报告
实验报告课程名称Java Web技术实验项目实验4 JavaBean与Servlet 实验仪器实验4 JavaBean与Servlet一、实验目的1.掌握编写JavaBean的规范,学会如何在JSP中使用JavaBean。
2.掌握编写Servlet的规范,学会如何配置Servlet,如何在JSP中使用Servlet3.掌握JSP、JavaBean和Servlet综合应用的基本原则二、实验要求创建一个WEB应用,综合利用JSP、JavaBean和Servlet技术实现用户登录(注册功能选做)。
程序至少包含:一个登录页面,一个欢迎页面,一个servlet和一个bean。
使用实验3中创建的数据库和表t_user,完成如下要求:1.用户在中输入用户名和密码,数据提交给servlet。
2.设计Bean,封装数据库表t_user(实验3中创建的)中一个用户的所有信息。
3.servlet完成用户身份验证(通过从表中条件检索来验证)。
如果用户合法,将该用户所有的信息放入上述bean的实例中,并存入session,转到;否则转到4.从session中取出用户信息并显示。
5.显示错误信息“用户名或密码错误!”,该页面中包含回到的链接。
三、实验结果1.存放的物理位置在F:\workspace\shiyan4\WebContent\ 。
源码如下:<%@ page contentType="text/html;charset=utf-8" language="java"%><html><head><title>用户登陆</title></head><body><form action="/shiyan4/Servlet" method=Get name=form><table><tr><td>用户名:</td><td><input type="text" name="username"></td></tr><tr><td>密码:</td><td><input type="password" name="password"></td><td><input type="submit" name="Login" value="登陆"></td></tr></table></form></body></html>2.bean的名称为information ,物理存放位置在F:\workspace\shiyan4\src\shiyan4\。
javabean及servlet使用实验总结
JavaBean 和 Servlet 是 Java Web 开发中的重要概念,它们的使用可以实现 Web 应用程序的很多功能。
以下是对 JavaBean 和Servlet 使用实验的总结:1. JavaBean:JavaBean 是一种符合特定规范的 Java 类,用于封装数据。
这个规范包括私有属性、公有 getter 和 setter 方法以及无参构造函数。
通过使用 JavaBean,可以将数据与表现分离,提高代码的可重用性和可维护性。
在实验中,我们创建了一个简单的 JavaBean,用于封装用户的姓名和电子邮件地址。
然后,我们在JSP 页面中直接使用这个JavaBean,通过调用 getter 方法获取属性值,并显示在页面上。
使用 JavaBean 可以简化代码,并使其更易于维护。
2. Servlet:Servlet 是用于处理客户端请求和生成动态 Web 内容的一种 Java 类。
Servlet 在服务器端运行,可以处理来自浏览器的 HTTP 请求,并生成 HTTP 响应返回给浏览器。
在实验中,我们创建了一个 Servlet,用于接收客户端传递的用户信息,并将其存储在 JavaBean 中。
然后,我们使用 JSP 页面显示这些信息。
Servlet 的生命周期由服务器管理,可以处理各种类型的请求,并具有很好的扩展性。
3. 总结:通过本次实验,我们了解了 JavaBean 和 Servlet 的基本概念和用法。
JavaBean 可以帮助我们封装数据,使代码更易于维护和重用;而 Servlet 则可以处理客户端请求,生成动态内容,并具有很好的可扩展性。
在实际开发中,我们可以将 JavaBean 和 Servlet 结合使用,实现更复杂的 Web 应用程序。
此外,我们还学习了如何在 JSP 页面中直接使用 JavaBean 和调用Servlet。
这种方式可以使我们的代码更简洁、易于维护和重用。
同时,我们还学习了如何配置 Web 应用程序,使其能够正确地部署和运行。
servlet增删改查
Servlet(增删改查)准备:1.新建一个web项目(StudentZSGC)2.分层,分包一.查(查询学员信息表)(1)新建一个JSP页面(通过form表单进一个servlet(StudentAction))<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><html><head><title>查询学员表</title></head><BODY bgcolor="#FFCCCC"><form action="StudentAction"method="post"><TABLE width="100%"height="100%"><TR align="center"><TD><INPUT TYPE="submit"value="查询学员信息"></TD></TR></TABLE></form></BODY></html>(2)通过web.xml(中转站)找到对应的servlet(StudentAction)(3)进入action层package com.student.action;import java.io.IOException;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.StudentService;public class StudentAction extends HttpServlet {/*** 查询所有人员*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html; charset=utf-8");//调方法StudentService studentService=new StudentService();List<Map<String, Object>> list=null;list=studentService.selectAll();req.setAttribute("StudentList", list);--传回前台进行set//转向if(!list.isEmpty()){ --跳转到该页面req.getRequestDispatcher("Student.jsp").forward(req, resp);}else{req.getRequestDispatcher("Student.jsp").forward(req, resp);}}}(4)进入service类中package com.student.service;import java.util.List;import java.util.Map;import com.student.dao.StudentDao;/*** 查询所有学员信息方法* @author Administrator*/public class StudentService {public List<Map<String, Object>> selectAll() {StudentDao StudentDao=new StudentDao();return StudentDao.selectAll();}}(5)进入dao中连接数据库package com.student.dao;import java.util.List;/*** 查询数据库所有学员放到list中*/import java.util.Map;import com.student.util.Dao;public class StudentDao {Dao dao=new Dao();public List<Map<String, Object>> selectAll() {S tring sql="select s_id, s_number, s_name, s_sex, s_class, s_age, s_add, s_college, s_mobile, s_hobby from student";return dao.select(sql,new Object[]{});}}(6)查询出数据后跳到Student.jsp页面<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%@page import="java.sql.Array"%><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>学员列表</title></head><BODY bgcolor="#FFCCCC"><form action=""method="post"><TABLE width="100%"height="100%"><TR><TD align="center"valign="top"><TABLE border="1"><TR><TD colspan="5">学号:<INPUT TYPE="text"NAME="Snumber"></TD><TD colspan="4">姓名:<INPUT TYPE="text"NAME="Sname"></TD><TD colspan="2"><INPUT TYPE="button"value="提交"></TD> </TR><TR><td><input type="checkbox"id="selAll"/></td><TD>id</TD><TD>学号</TD><TD>姓名</TD><TD>性别</TD><TD>班级</TD><TD>年龄</TD><TD>住址</TD><TD>就读院校</TD><TD>联系方式</TD><TD>爱好</TD></TR><!- 接后台容器中的元素-><%List<Map<String, Object>> list=(List<Map<String, Object>>)request.getAttribute("StudentList");for(int i=0;i<list.size();i++){Map<String, Object> map=list.get(i);%><!-前台通过map取值-><TR><td><input type="checkbox" name="selItem"value="<%=map.get("s_id")%>"/></td><TD><%=map.get("s_id")%></TD><TD><%=map.get("s_number")%></TD><TD><%=map.get("s_name")%></TD><TD><%=map.get("s_sex")%></TD><TD><%=map.get("s_class")%></TD><TD><%=map.get("s_age")%></TD><TD><%=map.get("s_add")%></TD><TD><%=map.get("s_college")%></TD><TD><%=map.get("s_mobile")%></TD><TD><%=map.get("s_hobby")%></TD></TR><%}%><TR><TD><A HREF="javascript:openW();">添加</A></TD><TD><A HREF="javascript:upPerson()">修改</A></TD><TD><A HREF="javascript:delPerson()">删除</A></TD></TR></TABLE></TD></TR></TABLE></form></BODY><script LANGUAGE="JavaScript">document.getElementById("selAll").onclick=function(){ var chItem=document.getElementsByName("selItem");for(i=0;i<chItem.length;i++){chItem[i].checked=this.checked;}}function openW(){window.showModalDialog("<%=request.getContextPath()%>/insertPe rson.jsp","","dialogwidth:380px;dialogheight:380px");}="myIndex"function upPerson(){var num = 0;var postId = "";var chItem = document.getElementsByName("selItem");for(i = 0 ; i <chItem.length;i++){if(chItem[i].checked == true){num ++;postId = chItem[i].value;}}if(num != 1){alert("请选择一条数据");}else{location.href ="upServlet?id="+postId;}}function delPerson(){var num = 0;var postId = "";var chItem = document.getElementsByName("selItem");for(i = 0 ; i <chItem.length;i++){if(chItem[i].checked == true){num ++;postId = chItem[i].value;}}if(num <1){alert("请至少选择一条数据");}else{document.forms[0].action="delServlet";document.forms[0].submit();}}</script></html>如下示例:二.增(添加学员)(1)在学员列表页面的添加按钮写一个方法调用函数function openW(){window.showModalDialog("<%=request.getContextPath()%>/insertPerso n.jsp","","dialogwidth:380px;dialogheight:380px");}="myIndex"知识点:1.点击添加跳转该添加页面insertPerson.jsp2. 当表单将要被提交时触发(onsubmit)="javascript:window.close()提交后立即关闭该窗体3.设置或获取目标内容要显示于哪个窗口或框架(target)="myIndex"(2)添加页面单机添加通过form 走servlet( AddPersonAction)<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><html><head><title>添加页面</title></head><BODY bgcolor="#FFCCCC"><form method="get"action="<%=request.getContextPath()%>/AddPersonAction"target="myIndex" onsubmit="javascript:window.close()"><TABLE width="343"height="139"><TR><TD>学 号:</TD><TD><INPUT TYPE="text"NAME="snumber"></TD><TD>*只能输入中文</TD></TR><TR><TD>姓 名:</TD><TD><INPUT TYPE="text"NAME="sname"></TD><TD>*只能输入中文</TD></TR><TR><TD>性 别:</TD><TD><INPUT TYPE="text"NAME="ssex"></TD><TD>*只能输入英文</TD></TR><TR><TD>班 级:</TD><TD><INPUT TYPE="text"NAME="sclass"></TD><TD>*只能输入中文</TD></TR><TR><TD>年 龄:</TD><TD><INPUT TYPE="text" NAME="sage"></TD><TD>*只能输入中文</TD></TR><TR><TD>地 址:</TD><TD><INPUT TYPE="text"NAME="sadd"></TD><TD>*只能输入中文</TD></TR><TR><TD>毕业院校:</TD><TD><INPUT TYPE="text"NAME="scollege"></TD><TD>*只能输入中文</TD></TR><TR><TD>联系方式:</TD><TD><INPUT TYPE="text"NAME="smobile"></TD><TD>*只能输入中文</TD></TR><TR><TD>爱 好:</TD><TD><INPUT TYPE="text"NAME="shobby"></TD><TD>*只能输入中文</TD></TR><tr><td colspan="2"><INPUT TYPE="submit" value="添加"><INPUT TYPE="reset"value="重置"/></td></tr></TABLE></form></BODY></html>(3)找到web.xml(中转站) AddPersonAction<servlet><servlet-name>AddPersonAction</servlet-name><servlet-class>com.student.action.AddPersonAction</servlet-class> </servlet><servlet-mapping><servlet-name>AddPersonAction</servlet-name><url-pattern>/AddPersonAction</url-pattern></servlet-mapping>(4)通过com.student.action.AddPersonAction进action中package com.student.action;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.AddPersonService;public class AddPersonAction extends HttpServlet {/*** 添加人员*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值 s_id, s_number, s_name, s_sex, s_class, s_age, s_add, s_college, s_mobile, s_hobby知识点:通过添加页面中的 input中的name值接过来的String snumber=(String)req.getParameter("snumber");snumber = new String(snumber.getBytes("ISO8859-1"),"utf-8");String sname=(String)req.getParameter("sname");sname = new String(sname.getBytes("ISO8859-1"),"utf-8");String ssex=(String)req.getParameter("ssex");ssex = new String(ssex.getBytes("ISO8859-1"),"utf-8");String sclass=(String)req.getParameter("sclass");sclass = new String(sclass.getBytes("ISO8859-1"),"utf-8");String sage=(String)req.getParameter("sage");sage = new String(sage.getBytes("ISO8859-1"),"utf-8");String sadd=(String)req.getParameter("sadd");sadd = new String(sadd.getBytes("ISO8859-1"),"utf-8");String scollege=(String)req.getParameter("scollege");scollege = new String(scollege.getBytes("ISO8859-1"),"utf-8");String smobile=(String)req.getParameter("smobile");smobile = new String(smobile.getBytes("ISO8859-1"),"utf-8");String shobby=(String)req.getParameter("shobby");shobby = new String(shobby.getBytes("ISO8859-1"),"utf-8");//调方法AddPersonService addPersonService=new AddPersonService();addPersonService.addPerson(snumber,sname,ssex,sclass,sage,sadd,scolle ge,smobile,shobby);//转向req.getRequestDispatcher("StudentAction").forward(req, resp);知识点:添加完后跳到StudentAction重新查询一遍数据库}}(5)service层package com.student.service;import com.student.dao.AddPersonDao;public class AddPersonService {public boolean addPerson(String snumber, String sname, String ssex, String sclass, String sage, String sadd, String scollege,String smobile, String shobby) {AddPersonDao addPersonDao=new AddPersonDao();Object[] paras=new Object[9];paras[0]=snumber;paras[1]=sname;paras[2]=ssex;paras[3]=sclass;paras[4]=sage;paras[5]=sadd;paras[6]=scollege;paras[7]=smobile;paras[8]=shobby;return addPersonDao.addPerson(paras);}}(6)dao层package com.student.dao;import com.student.util.Dao;public class AddPersonDao {public boolean addPerson(Object[] paras) {Dao dao=new Dao();String sql="insert into student(s_id, s_number, s_name, s_sex,s_class, s_age, s_add, s_college, s_mobile, s_hobby) values(seq.nextval, ?, ?, ?, ?, ?, ?, ?, ?, ?)";int num=dao.executeDML(sql, paras);return num>0?true:false;}}三.改(修改学员信息)分析:总共分两步1.首先走一个servlet查询出要修改的用户信息2.然后再走一个servlet更新用户新输入的学员信息(1)单机修改按钮(2)调用函数uplPerson()(3)根据location连接到servlet(upServlet)知识点:location.href ="upServlet?id="+postId;将选中用户id传入后台以用查询(4)根据web.xml(中转站)找到对应的servlet(5)找到upServletActionpackage com.student.action;import java.io.IOException;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.upServletService;public class upServletAction extends HttpServlet {/*** 修改类*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值//id前台传过来的location.href ="upServlet?id="+postId;String sid=(String)req.getParameter("id");upServletService upServletService=newupServletService();List<Map<String, Object>>list=upServletService.selectStudent(sid);if(!list.isEmpty()){//方便前台取出要被修改学员的信息req.setAttribute("list", list);//下个页面接收传到要跳入的页面UpStudent.jsp页面用该方法接传过来的sidreq.setAttribute("sid", sid);req.getRequestDispatcher("UpStudent.jsp").forward(req, resp);}}}(6)根据其找到对应的service类(7)service类(8)调用upServletDao类(9)前台修改页面取值<%@page language="java"import="java.util.*"pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><html><head><title>修改页面</title></head><BODY bgcolor="#FFCCCC"><form method="get"action="<%=request.getContextPath()%>/UpStudentAction"target="myIndex"><%%><%//判断数据库中是否有该学员if(request.getAttribute("list")!=null){List<Map<String,Object>>list=(List<Map<String,Object>>)request.getAttribute("list");Map<String,Object> map=list.get(0);%><!-- 接上个页面的id(value="<%=request.getAttribute("sid")%>")下个页面通过 name="id"接收id --><input type="hidden"name="id"value="<%=request.getAttribute("sid")%>"/><TABLE width="343"height="139"><TR><TD>学 号:</TD>//取后台查询出来的值(以下红线均是)<TD><INPUTTYPE="text"NAME="snumber"value="<%=map.get("s_number")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>姓 名:</TD><TD><INPUT TYPE="text"NAME="sname"value="<%=map.get("s_name")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>性 别:</TD><TD><INPUT TYPE="text"NAME="ssex"value="<%=map.get("s_sex")%>"></TD><TD>*只能输入英文</TD></TR><TR><TD>班 级:</TD><TD><INPUT TYPE="text"NAME="sclass"value="<%=map.get("s_class")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>年 龄:</TD><TD><INPUT TYPE="text"NAME="sage"value="<%=map.get("s_age")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>地 址:</TD><TD><INPUT TYPE="text"NAME="sadd"value="<%=map.get("s_add")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>毕业院校:</TD><TD><INPUT TYPE="text"NAME="scollege"value="<%=map.get("s_college")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>联系方式:</TD><TD><INPUT TYPE="text"NAME="smobile"value="<%=map.get("s_mobile")%>"></TD><TD>*只能输入中文</TD></TR><TR><TD>爱 好:</TD><TD><INPUT TYPE="text"NAME="shobby"value="<%=map.get("s_hobby")%>"></TD><TD>*只能输入中文</TD></TR><tr><td colspan="2"><INPUT TYPE="submit"value="修改"><INPUT TYPE="reset"value="重置"/></td></tr></TABLE><%} %></form></BODY></html>完成以上即完成第一步查询出要修改的学员信息并返回给前台页面(如图所示)选中一条数据单机修改第二步骤更新用户新输入的学员信息(10)用户对其进行修改,改完后单机修改按钮根据form表单走一个servlet(upStudentAction)(11)到web.xmlz中找到对应的servlet(12)action层package com.student.action;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.UpStudentService;public class UpStudentAction extends HttpServlet {/*** 修改选中的用户信息*/private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {//转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值跟据修改页面里的input里的name属性接到的String sid=(String)req.getParameter("id");String snumber=(String)req.getParameter("snumber");snumber = new String(snumber.getBytes("ISO8859-1"),"utf-8");String sname=(String)req.getParameter("sname");sname = new String(sname.getBytes("ISO8859-1"),"utf-8");String ssex=(String)req.getParameter("ssex");ssex = new String(ssex.getBytes("ISO8859-1"),"utf-8");String sclass=(String)req.getParameter("sclass");sclass = new String(sclass.getBytes("ISO8859-1"),"utf-8");String sage=(String)req.getParameter("sage");sage = new String(sage.getBytes("ISO8859-1"),"utf-8");String sadd=(String)req.getParameter("sadd");sadd = new String(sadd.getBytes("ISO8859-1"),"utf-8");String scollege=(String)req.getParameter("scollege");scollege = newString(scollege.getBytes("ISO8859-1"),"utf-8");String smobile=(String)req.getParameter("smobile");smobile = new String(smobile.getBytes("ISO8859-1"),"utf-8");String shobby=(String)req.getParameter("shobby");shobby = new String(shobby.getBytes("ISO8859-1"),"utf-8");//调方法UpStudentService upStudentService=new UpStudentService();if(upStudentService.upStudent(snumber,sname,ssex,sclass,sage,sadd,s college,smobile,shobby,sid)){// 修改后跳到(StudentAction)servlet中在重新查询遍更新后的信息 req.getRequestDispatcher("StudentAction").forward(req, resp);}}}(13)走到service层(14)走到dao层四.删(删除学员信息)(1)单机删除按钮调用delPerson()(2)调用函数走delServlet(3)通过web.xml找到对应的servlet(4)action层package com.student.action;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.student.service.delServletService;/*** 删除数据* @author Administrator*/public class delServletAction extends HttpServlet { private static final long serialVersionUID = 1L;@Overridep rotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException { // 转码req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//接值// String sid=(String)req.getParameter("id");//根据该条接收到的idString[] ids=req.getParameterValues("selItem");//掉方法delServletService delServletService=newdelServletService();if(delServletService.delStudent(ids)){req.getRequestDispatcher("StudentAction").forward(req, resp);}else{S ystem.out.println("删除失败");}}}(5)service层(6)dao层五.实现学员信息单独放在一个区域如下:将学员信息列表table外放一个div知识点:auto Content is clipped and scrolling is added only when necessary.<table>…………..</table></div>六.模糊查询1.两个参数:学号和用户名同时模糊(两个都需要like)Sql:select s_id, s_number, s_name, s_sex, s_class, s_age, s_add, s_college, s_mobile, s_hobby from student where s_number like ? and s_name like ?Dao: 将参数前后加%:如果其他地方用到select方法的将其sql语句改成like(修改时查修改用户信息时用)。
使用JSPSERVLETJDBC实现对数据库的增删改查(详细)(精)
public void setCurrentRecord(int currentRecord{
this.currentRecord=currentRecord;
}
//获得和设置每页记录数量
public int getPageSize({
return pageSize;
}
public void setPageSize(int pageSize{
private int totalRecord;
private int currentRecord;
private int pageSize=8;
//获得和设置当前页
public int getCurrentPage({
return currentPage;
}
public void setCurrentPage(int currentRecord,int pageSize{
String major=request.getParameter("major";
conn=connect(;
stat=conn.createStatement(;
stat.execute("insert into student(id,name,age,gender,major values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"'";
// TODO Auto-generated catch block
javaBean实验报告
javaBean实验报告一、实验目的1、深入理解 JavaBean 的概念和作用。
2、掌握如何创建、使用和配置 JavaBean。
3、学会在 Java Web 应用中运用 JavaBean 来提高代码的可维护性和可复用性。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java EE Developers3、服务器:Apache Tomcat 904、 JDK 版本:JDK 18三、实验原理JavaBean 是一种遵循特定规范的 Java 类,它具有私有属性、公共的 getter 和 setter 方法,以及一个无参的构造函数。
通过这些规范,可以方便地对属性进行访问和修改,同时也有利于代码的封装和复用。
四、实验内容(一)创建 JavaBean创建一个名为`Student` 的 JavaBean 类,包含学生的学号(`id`)、姓名(`name`)和年龄(`age`)三个属性。
代码如下:```javapublic class Student {private int id;private String name;private int age;public Student(){}public int getId(){return id;}public void setId(int id) {thisid = id;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```(二)在 JSP 页面中使用 JavaBean创建一个名为`useStudentjsp` 的 JSP 页面,通过`<jsp:useBean>`标签实例化`Student` 对象,并通过`<jsp:getProperty>`和`<jsp:setProperty>`标签来获取和设置属性值。
《java程序设计及Jspservlet核心技术实验》教学大纲.doc
《java程序设计及Jsp/servlet核心技术实验》教学大纲课程编号:S052081课程名称(中文):java程序设计及Jsp/servlet核心技术实验(英文):Experiment of java Programming and Jsp/servlet Core Technology课程性质:独立设课课程属性:专业必修教材及实验指导书名称:《面向对象与Java程序设计Mjava Web开发技术教程》及《J2EE 架构及java程序设计实验指导书》实验学时:32 学分:1应开实验学期:第四学期适用专业:计算机科学与技术(嵌入式软件人才培养方向)先修课程:软件开发语言技术、.NET架构及C/C++程序设计一、课程简介本课程是java程序设计及Jsp/servlet核心技术的独立实验课程,是计算机科学与技术专业(嵌入式软件人才培养方向)的一门专业必修课。
本课程将系统而全面的介绍java面向对象编程,web 开发的基础,通过上机实践使学生进一步理解面向对象程序设计的思想,掌握使用Java进行程序开发的一般过程,培养学生规范编程的能力,能运用servlet/jsp技术结合JAVA基础内容做个项目,采用面象对象的思想解决一定的实际问题的能力。
实践过程中结合任务驱动与问题激励相结合的原则,培养学生的团队协作意识和自学能力。
二、实验目的和要求其目的在于使学生能熟练地掌握掌握使用Java进行程序开发的一般过程以及java web 开发的一般过程,能编写代码,上机调试,运行程序和分析结果。
为充分发挥学生的主观能动性,促使其独立思考、独立完成实验并有所创新,具体要求如下:1.实验前准备阶段,要求学生复习和掌握与本次实验相关的教学内容,并认真做好预习,明确实验内容和要求,根据实验内容编写出上机所需的程序。
2.实验进行阶段,根据指导书上给定的实验内容进行分析与设计,然后编写程序进行编译调试,分析运行结果的合理性和正确性。
综合实验2文档说明(DAO设计模式)
综合实验2一、实验目的●JSP的基本语法●Servlet的重定向和请求转发的应用●熟悉DAO设计模式的应用●掌握访问数据库的方法●熟悉JSP+Servlet+JavaBean的开发模式要求:1.该实验为第二次个综合性实验,请同学们在第12周上传电子版至小课老师的FTP。
2.第12周上小课时上交纸质版实验报告,打印实验报告。
实验报告中至少截图5份不需要太大,能说明问题即可。
认真对本次实验进行总结,填写好实验报告中的实验总结。
二、实验环境●Myeclipse+weblogic10/Tomcat三、实验描述1、本次实验可以实验10的JSP+Servlet+JDBC登录模块上进行更改、扩展,增加用户注册的功能。
2、本实验是是包括登录和注册两个小模块,每一个小模块都是由一个处理业务逻辑的Servlet和若干JSP页面组成,其中登录模块的Servlet是LoginServlet类,另外还有一个用于显示用户登录的login.jsp文件、登录成功的welcom.jsp和登录失败的back.jsp文件。
注册模块的Servlet是addUserServlet类,另外还有一个显示用户注册页面的addUser.jsp文件和显示注册用户添加成功的info.jsp文件。
3、请同学们掌握DAO设计模式,其中综合实验2文件夹中有相关学习视频和PPT、PDF文档。
DAO在今后的学习、开发过程中比较常用。
4、综合实验2可以采用DAO方式,进行设计。
如果不会采用DAO的同学,也可以在实验10的基础上直接修改程序,完成实验。
5、通信过程中,要对可能产生中文乱码做处理。
6、数据库使用test数据库,创建表user,其中字段包括:user,pwd,sex.7、请结合所学的CSS、JS,JQ等知识内容,对本次综合实验进行各方面的优化,比较说UI、功能等。
8、实验运行过程及结果如下所示:●运行login.jsp出现图1的界面,如下图1 用户登录界面●输入正确的用户名和密码,务必保证能够输入中文的用户名,如图2所示。
基于JSP+JavaBean+Servlet实现模式的增删改模块的设计与实现
上 层 应 用 功 能 <C0E/F0E/S0E)
协议的基本通讯功能
按 相 关 服 务 分 类 组 装 数 据 帧 的 API
教据帧收发及网卡接口管理
KAl/_SOCKET 接口
图 1 SOEM协议栈分层结构图 第一层是原始套接字接口 (RAW_ SOCKET),用于主站和 从站之间数据帧的接收和发送。 第 二 层 是 用 来 管 理 、发 送 缓 冲 区 队 列 或 缓 冲 区 中 的 数 据 , 并 把 网 卡 和 RAW_SOCKET连接起来。 第三层是将f 同 的 EtherCAT基本的读写服务组拼装成 完整的数据帧格式。 第 四 层 是 实 现 EtherCAT主站和从站通信的基本功能函 数 ,主 要 ESM 初始化状态读写及检测,周期或非周期性的过 程 数 据 发 送 和 接 收 ,邮 箱 数 据 发 送 和 接 收 等 。 第 五 层 是 实 现 COE、FOE、SO E等上层应用协议的功能。 SOEM使 用 Raw Socket收 发 EtherCAT帧 ,通过系统调用 bind、 send 和 recv 实现 EtherCAT 通 信 。 SO M E支 持 分 布 时 钟 (D C),从 站 设 备 基 于 实 时 时 钟 ,控制 信号可以搞精度同步。 在 数 控 系 统 中 ,为 了 实 现 各 个 伺 服 电 机 的 同 步 联 动 插 补
参考文献:
[ 1 ] 马春敏,康存锋,黄旭东,等.基于Linux的 EtherCAT主站 的研究[J].制造业自动化》2011,(8):78-82.
[2] Denny Yang;基于 AM335X 平台的 Elhercat 实现; TI Ap plication Report
[ 3 ] 郇极,刘艳强.工业以太网现场总线EtherCAT驱动程序设 计 及 应 用 [M]■北京航空航天大学出版社,2010.
JSP程序设计实验报告范文(6个)--2022
JSP程序设计实验报告范文(6个)--2022实验一实验时间:2022年10月16日实验项目目的和任务(1).了解动态网站开发的相关技术。
(2).理解Servlet的运行原理及生命周期。
(3).掌握Servlet的编写及部署。
(4).掌握Servlet对表单数据的处理。
(5).掌握Servlet对HTTP请求报头的处理实验内容:完成实践1.D.1、实践1.D.2根据第一章所学内容以及上机实践情况,在实验报告中完成以下问题。
(1)编写用户登录页面,使用Servlet处理表单数据,当用户提交数据正确时显示“登录成功”,否则提示“登录失败。
在实验报告中给出Servlet的关键代码,并将实验结果粘贴与此。
(2)画图解释Servlet生命周期的几个阶段。
实验二实验时间:2022年10月23日实验项目目的和任务:(1).掌握会话跟踪的相关技术。
(2).理解Cookie的原理,掌握Cookie的使用方法。
(3).理解Seion的原理,理解Seion的生命周期,熟练掌握Seion的使用方法。
(4).理解ServletConte某t接口,掌握该接口中定义的方法。
实验内容:完成实践二Servlet会话跟踪中的实践2.G..1、实践2.G..2两个实验。
在实验报告中完成以下问题。
使用Seion完成如下功能:a)登录页面login.html中输入用户名和密码,都不能为空。
b)CheckServlet.java对用户名和密码进行验证,如果用户名为“admin”,密码为“1234”,则跳转到主页,否则显示错误提示。
c)MainServlet.java作为主页,显示当前用户名,同时显示SeionID、Seion的创建时间和时效,并提供一个“注销”的超链接。
d)DetroySeion.java对当前用户进行注销,销毁Seion对象。
在实验报告中给出CheckServlet.java,MainServlet.java,DetroySeion.java的完整代码,并在实验结果一栏中粘贴主页MainServlet.java的截图。
java myeclipse tomcat (六)详解servlet和dao数据库增删改查操作myeclipseservlet
Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作,myeclipseservlet此篇文章主要讲述DAO、Java Bean和Servlet实现操作数据库,把链接数据库、数据库操作、前端界面显示分模块化实现。
其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面进行描述。
参考前文:Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作Java+MyEclipse+Tomcat (五)DAO和Java Bean 实现数据库和界面分开操作免费资源下载地址:/detail/eastmount/8733385PS:这篇文章可以认为是对前面五篇文章的一系列总结和应用,同时我认为理解该篇文章基本就能简单实现一个基于数据库操作的JSP网站,对你的课程项目或毕设有所帮助!但同时没有涉及事务、触发器、存储过程、并发处理等数据库知识,也没有Struts、Hibernate、Spring框架知识,它还是属于基础性文章吧!希望对你有所帮助~ 一. 项目结构该项目的结构如下图所示:这是典型的DAO模式,其中bean文件夹中TrainManage.java类封装了数据库表TrainManage中的属性和get/set操作;DAO文件夹中TrainManageDAO.java是对类TrainManage(或火车表)的数据库增删改查操作;util中JDBCConnect.java主要是连接数据库MySQL的操作;servlet主要是POST方法请求表单。
二. 数据库初始化操作打开MySQL,输入默认超级root用户的密码,然后数据库的操作如下代码:--创建数据库create database ManageTrain;--使用数据库use ManageTrain;--创建表车次信息管理表主键:车次--属性:车次出发地目的地行车时间硬座票价软座票价硬卧票价软卧票价车辆路线create table TrainManage(trainid varchar(20) primary key,start varchar(20),end varchar(20),time varchar(20),yzprice decimal(10,1),rzprice decimal(10,1),ywprice decimal(10,1),rwprice decimal(10,1),root varchar(200));--插入数据insert TrainManage(trainid,start,end,time,yzprice,rzprice,ywprice,rwprice,root) values ("T87","Beijing","Guiyang","28小时","278","320","464.5","550","Beijing Shijiazhuang Guiyang");insert TrainManage(trainid,start,end,time,yzprice,rzprice,ywprice,rwprice,root) values ("T87","Guiyang","Beijing","28小时","278","320","464.5","550","Guiyang Shijiazhuang Beijing");--查询数据select * from TrainManage;注意:上面操作在MySQL黑框中输出增删改查的SQL语言就可以,不要把中文注释也执行。
servlet增删改查
servlet增删改查Servlet使⽤Servlet进⾏增删改查步骤1.导⼊以下⼏个jar包到WEB-INF下的lib包⾥,必要时build path,其中jstl.jar和standard.jar是使⽤jstl要⽤的(eclipse中)2.写对应的dao,service,以及实现类3.写对应的servlet类,必须继承HttpServlet类1. 在此servlet类⾥加私有的service实现类;2. 添加doPost()和doGet⽅法:⼀般是在doPost()⾥写具体操作代码,doGet()⽅法⾥调⽤doPost,这样,不管提交⽅式是post还是get,都可以访问;3. doPost()⽅法⾥要先加request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");1. 取参和传参,转发和重定向取参:String age1=request.getParameter("age");int age = Integer.parseInt(age1);传参:request.setAttribute("emp", emp);转发:request.getRequestDispatcher("/emp.jsp").forward(request, response);重定向:response.sendRedirect(request.getContextPath()+"/error.jsp");5配置web.xml,写对应的servlet和其映射访问时:先通过url定位到web.xml⾥servlet的url-pattern,再对应到servlet-name,再找到对应的servlet类,根据访问时提交的⽅法调⽤相应的doPost()或者doGet()⽅法6.写对应的前台页⾯取后台传过来的数据:${ }提交的url路径:<form action="/servletTest/updateEmp" method="post"></form><a href="/servletTest/deleteEmp?id=${emp.id }">删除</a>⽰例代码DbUtil.javapackage util;import mons.dbutils.QueryRunner;import boPooledDataSource;public class DbUtil {private static ComboPooledDataSource ds=new ComboPooledDataSource(); public static QueryRunner getQueryRunner(){QueryRunner qr = new QueryRunner(ds);return qr;}}c3p0-config.xml<c3p0-config><default-config><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost/test</property><property name="user">root</property><property name="password"></property><property name="initialPoolSize">5</property><property name="maxPoolSize">10</property></default-config></c3p0-config>EmpDao.javapackage dao;import java.util.List;import entity.Emp;public interface EmpDao {public int add(Emp emp);public int delete(int id);public int update(Emp emp);public Emp find(int id);public List<Emp> findAll();}EmpDaoImpl.javapackage dao.impl;import java.sql.SQLException;import java.util.List;import mons.dbutils.QueryRunner;import mons.dbutils.handlers.BeanHandler;import mons.dbutils.handlers.BeanListHandler;import util.DbUtil;import dao.EmpDao;import entity.Emp;public class EmpDaoImpl implements EmpDao {QueryRunner qr = DbUtil.getQueryRunner();@Overridepublic int add(Emp emp) {String sql="insert into emp(age,name) values(?,?) ";int num=0;try {num = qr.update(sql, emp.getAge(),emp.getName());} catch (SQLException e) {e.printStackTrace();}return num;}@Overridepublic List<Emp> findAll() {String sql="select*from emp";List<Emp> emps=null;try {emps=qr.query(sql, new BeanListHandler<Emp>(Emp.class)); } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return emps;}@Overridepublic int delete(int id) {String sql="delete from emp where id="+id;int num=0;try {num=qr.update(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return num;}@Overridepublic int update(Emp emp) {String sql="update emp set name=?,age=? where id=?"; System.out.println("sql---------"+sql);int num=0;try {num=qr.update(sql, emp.getName(),emp.getAge(),emp.getId()); } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return num;}@Overridepublic Emp find(int id) {String sql="select * from emp where id="+id;Emp emp=null;try {emp=qr.query(sql, new BeanHandler<Emp>(Emp.class));} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return emp;}}EmpService.javapackage service;import java.util.List;import entity.Emp;public interface EmpService {public int addEmp(Emp emp);public List<Emp> findAll();public int delete(int id);public int update(Emp emp);public Emp find(int id);}EmpServiceImpl.javapackage service.impl;import java.util.List;import service.EmpService;import dao.impl.EmpDaoImpl;import entity.Emp;public class EmpServiceImpl implements EmpService {private EmpDaoImpl empDao=new EmpDaoImpl();@Overridepublic int addEmp(Emp emp) {int num = empDao.add(emp);return num;}@Overridepublic List<Emp> findAll() {return empDao.findAll();}@Overridepublic int delete(int id) {return empDao.delete(id);}@Overridepublic int update(Emp emp) {return empDao.update(emp);}@Overridepublic Emp find(int id) {return empDao.find(id);}}AddEmpServlet.javapackage servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.impl.EmpServiceImpl;import entity.Emp;public class AddEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String age1=request.getParameter("age");int age = Integer.parseInt(age1);String name = request.getParameter("name");Emp emp=new Emp();emp.setAge(age);emp.setName(name);int num = empService.addEmp(emp);if(num>0){response.sendRedirect(request.getContextPath()+"/empList");}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);;}}DeleteEmpServlet.javapackage servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.impl.EmpServiceImpl;import entity.Emp;public class DeleteEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String id1 = request.getParameter("id");Integer id=Integer.parseInt(id1);System.out.println("进⼊删除,id="+id);int num = empService.delete(id);System.out.println("删除?---"+num);if(num>0){response.sendRedirect(request.getContextPath()+"/empList");}else{response.sendRedirect("/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}}//修改时,先找到要修改的对象,再转发到需要修改的页⾯,显⽰要修改的对象信息,然后提交时修改FindUpdEmpServlet .javapackage servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import entity.Emp;import service.impl.EmpServiceImpl;public class FindUpdEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");Integer id=Integer.parseInt(request.getParameter("id"));Emp emp = empService.find(id);System.out.println("要修改的emp"+emp.getName());if(emp!=null){request.setAttribute("emp", emp);request.getRequestDispatcher("/update.jsp").forward(request, response);;}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}UpdateEmpServlet.javapackage servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.impl.EmpServiceImpl;import entity.Emp;public class UpdateEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String id1 = request.getParameter("id");Integer id=Integer.parseInt(id1);String name = request.getParameter("name");String age1 = request.getParameter("age");Integer age=Integer.parseInt(age1);Emp emp=new Emp();emp.setId(id);emp.setAge(age);emp.setName(name);//empService.find(id);int num = empService.update(emp);if(num>0){response.sendRedirect(request.getContextPath()+"/empList");}else{response.sendRedirect("/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}FindEmpServlet.javapackage servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import entity.Emp;import service.impl.EmpServiceImpl;public class FindEmpServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");Integer id=Integer.parseInt(request.getParameter("id"));Emp emp = empService.find(id);System.out.println("emp---"+emp.getName()+"---"+emp.getAge());if(emp!= null){request.setAttribute("emp", emp);request.getRequestDispatcher("/emp.jsp").forward(request, response);}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}}FindEmp s Servlet.javapackage servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import entity.Emp;import service.impl.EmpServiceImpl;public class FindEmpsServlet extends HttpServlet {private EmpServiceImpl empService=new EmpServiceImpl();@Overridepublic void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");List<Emp> emps = empService.findAll();if(emps!=null){request.setAttribute("emps", emps);request.getRequestDispatcher("/list.jsp").forward(request, response);}else{response.sendRedirect(request.getContextPath()+"/error.jsp");}}@Overridepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}}web.xml前台页⾯add.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>添加员⼯</title></head><body><form action="/servletTest/addEmp" method="post">姓名:<input type="text" name="name"/><p>年龄:<input type="text" name="age"/><p><input type="submit" value="添加"/></form></body></html>list.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@taglib uri="/jsp/jstl/core" prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>员⼯列表</title></head><body>添加成功<table><tr ><td colspan="3"><a href="index.jsp">添加</a></td></tr><tr><th>编号</th><th>年龄</th><th>age</th><th colspan="3">操作</th></tr><!--items⾥⾯写${requestScope.emps}也可以 --><c:forEach items="${emps }" var="emp" varStatus="vs"><tr><td>${emp.id }</td><td>${ }</td><td>${emp.age }</td><td><a href="/servletTest/deleteEmp?id=${emp.id }">删除</a></td><td><a href="/servletTest/findUpdEmp?id=${emp.id }">修改</a></td><td><a href="/servletTest/findEmp?id=${emp.id }">查看</a></td></tr></c:forEach></table></body></html>emp.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body>编号:${emp.id }<p>姓名:${ }<p>年龄:${emp.age }</body></html>update.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>修改员⼯</title></head><body><form action="/servletTest/updateEmp" method="post">编号:<input type="text" name="id" value="${emp.id }" readonly="readonly"/><p>姓名:<input type="text" name="name" value="${ }"/><p>年龄:<input type="text" name="age" value="${emp.age }"/><p><input type="submit" value="提交"/></form></body></html>error.jsp<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><h1>出错了</h1></body></html>。
JavaWeb应用实例servlet实现oracle基本增删改查(精)
Java Web 应用实例 servlet实现oracle 基本增删改查分类:JAVA WEB应用实例2012-08-31 16:51 3515人阅读评论(0 收藏举报/a542214712/article/details/7924444很久没有写博客了,可能是太懒散,不愿意把时间花在这上面,可是我心里还是知道写博客的重要性的,所以从今天开始,我将与大家分享一下我学JAVA WEB写的一些小实例,我个人是不太喜欢书本上的晦涩的概念的,所以我花了更多的时间在一些应用实例上,我觉得这样的学习方式很适合我,由简到繁,由浅入深废话不多话,开始我们的第一个实例:servlet实现oracle 基本增删改查开发环境:JDK7 +Myeclipse10+tomcat7.0+oracle 11g首先附上数据库创建脚本:[sql]view plaincopy1. create table student(2. id VARCHAR2(50 PRIMARY KEY NOT NULL,3. name varchar2(50 NOT NULL,4. calssGrent varchar2(50 NOT NULL ,5. result varchar(12 NOT NULL6. ;7. insert into student(id,name,calssGrent,result values(perseq.nextval,'张三','33','98'下图为代码结构图和功能演示界面做的比较糟糕只为实现功能:MMC_01.java页面 //主界面提供添加,修改删除的方法[java]view plaincopy1. package org.lsy.servlet;2.3. import java.io.IOException;4. import java.io.PrintWriter;5. import java.sql.Connection;6. import java.sql.DriverManager;7. import java.sql.ResultSet;8. import java.sql.Statement;9.10. import javax.servlet.ServletException;11. import javax.servlet.http.HttpServlet;12. import javax.servlet.http.HttpServletRequest;13. import javax.servlet.http.HttpServletResponse;14.15. import oracle.jdbc.oracore.TDSPatch;16.17. public class MMC_01 extends HttpServlet18. {19. // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中20.21. // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住22. public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY ";23. // 连接数据库的用户名24. public static final String DBUSER = "scott";25. // 连接数据库的密码26. public static final String DBPASS = "tiger";27.28. public void doGet(HttpServletRequest request, HttpServletResponse response29. throws ServletException, IOException30. {31. //设置请求和响应的编码,不然页面上容易出现乱码32. request.setCharacterEncoding("UTF-8";33. response.setCharacterEncoding("UTF-8";34.35. response.setContentType("text/html;UTF-8";36. //输出流37. PrintWriter out = response.getWriter(;38. //数据库连接代码39. try40. {41. Connection conn = null; // 表示数据库的连接的对象42. Statement stmt = null; // 表示数据库的更新操作43. String sql="insert into student(id,name,calssGrent,result values( '67','刘12宇','33','98'";44. System.out.println(sql ;45. // 1、使用Class类加载驱动程序46. Class.forName("oracle.jdbc.driver.OracleDriver";47. // 2、连接数据库48. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS;49. // 3、Statement接口需要通过Connection接口进行实例化操作50. stmt = conn.createStatement(;51. //用 rs获取查询结果,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-52. ResultSet rs=stmt.executeQuery("select *from student";53. out.println("";54. out.println("";55. out.println(" ";56. out.println(" ";57. //输出表头部分58. out.print(" 姓名" +59. "班级成绩修改删除";60. while(rs.next(61. {62. //获取数据库中的ID63. String id=rs.getString("id";64. //输出一列元素65. out.print(""+rs.getString("name"66. +""+rs.getString("calssGrent"+"" +67. ""+rs.getString("result"+"" +68. " +id+ "'> 修改 " +69. " +id+ "'> 删除 " ;70.71. }72. out.println(" 添加数据";73. out.println(" ";74. out.println("";75. conn.close(;76.77. }78. catch (Exception e79. {80. e.printStackTrace(;81. }82. out.flush(;83. out.close(;84. }85.86. }87.UpdatePage.java //获取要修改的数据,并把修改过的数据提交给Update [java]view plaincopy1. package org.lsy.servlet;2. import java.io.IOException;3. import java.io.PrintWriter;4. import java.sql.Connection;5. import java.sql.DriverManager;6. import java.sql.ResultSet;7. import java.sql.Statement;8.9. import javax.servlet.ServletException;10. import javax.servlet.http.HttpServlet;11. import javax.servlet.http.HttpServletRequest;12. import javax.servlet.http.HttpServletResponse;13.14. import com.sun.crypto.provider.RSACipher;15.16. public class UpdatePage extends HttpServlet17. {18. // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住19. public static final String DBURL = "jdbc:oracle:thin:@localhost:1521: LIUSY";20. // 连接数据库的用户名21. public static final String DBUSER = "scott";22. // 连接数据库的密码23. public static final String DBPASS = "tiger";24.25. public void doGet(HttpServletRequest request, HttpServletResponse response26. throws ServletException, IOException27. {28. String id=request.getParameter("id";29. //设置请求和响应的编码,不然页面上容易出现乱码30. request.setCharacterEncoding("UTF-8";31. response.setCharacterEncoding("UTF-8";32. response.setContentType("text/html;UTF-8";33. PrintWriter out = response.getWriter(;34. try35. {36. Connection conn = null; // 表示数据库的连接的对象37. Statement stmt = null; // 表示数据库的更新操作38. // 1、使用Class类加载驱动程序39. Class.forName("oracle.jdbc.driver.OracleDriver";40. // 2、连接数据库41. conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS;42. // 3、Statement接口需要通过Connection接口进行实例化操作43. stmt = conn.createStatement(;44. //用 rs获取查询结果,这里的SQL语句最好不要用* 我的字段比较少所以就偷一下懒,-,-45. ResultSet rs=stmt.executeQuery("select *from student where id='"+id+"'";46. while (rs.next(47. {48. out.println("";49. out.println("";50. out.println(" ";51. out.println(" ";52. //输入成绩的表单,提交至Update53. out.print(" " ;54. out.print(" 姓名:+rs.getString( "name" +"'[java] view plaincopy1. "white-space:pre"> name='name' size=20 >";2. out.print("班级:+rs.getString( "calssGrent" +"' name='grent' size=20>" ;3. out.print("成绩:+rs.getString( "result" +"' name='result' size=20>" ;4. //为了作为查询数据库的条件,这里要把ID传过去5. out.print(" +id+ "' name='id'>" ;6. out.print(" 修改 '> 重置 '>" ;7. out.print(" ";8. out.println("";9. }10. out.flush(;11. out.close(;12. }13. catch (Exception e {14. e.printStackTrace(;// TODO: handle exception15. }16. }17.18. }Update.java 接收要修改的数据,并更新数据库[java]view plaincopy1. package org.lsy.servlet;2.3. import java.io.IOException;4. import java.io.PrintWriter;5. import java.sql.Connection;6. import java.sql.DriverManager;7. import java.sql.Statement;8.9. import javax.servlet.ServletException;10. import javax.servlet.http.HttpServlet;11. import javax.servlet.http.HttpServletRequest;12. import javax.servlet.http.HttpServletResponse;13.14. public class Update extends HttpServlet15. {16. // 驱动程序就是之前在classpath中配置的jdbc的驱动程序的jar包中17.18. // 连接地址是由各个数据库生产商单独提供的,所以需要单独记住19. public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:LIUSY";20. // 连接数据库的用户名21. public static final String DBUSER = "scott";22. // 连接数据库的密码23. public static final String DBPASS = "tiger";24.25. public void doGet(HttpServletRequest request, HttpServletResponse response26. throws ServletException, IOException27. {28. try29.30. {31. request.setCharacterEncoding("UTF-8";32. response.setCharacterEncoding("UTF-8";33. response.setContentType("text/html;UTF-8";34. PrintWriter out = response.getWriter(;35. Connection conn = null; // 表示数据库的连接的对象36. Statement stmt = null; // 表示数据库的更新操作37. //获取表单提交的参数湖北省武昌区2012届高三年级元月调研测试英语试题本试卷第一至第三部分为选择题,共100分;第四部分为非选择题,共50分,全卷共12页。
servlet实现学生信息管理系统api实验总结
servlet实现学生信息管理系统api实验总结
Java Web项目,使用了Jsp+Servlet技术
注册+登录+验证码+学生信息增删改查+分页查询
+jsp+servlet+JavaBean+MySQL+tomcat
此项目为最基本的Java web课程设计。
只需要对数据、数据类型进行修改,就可以作为其他名称的项目。
主要技术:Jsp+Servlet+Mysql+Tomcat+Eclipse
适用场合:Java课程设计/Java大作业
项目类型:JAVA WEB项目
用户类型:管理员
开发工具:Eclipse
数据库表:2张
功能介绍:实现注册登录,分页查询,以及对学生信息的增删改查。
1.注册
2.登录
3.分页查询
4.添加学生
5.删除学生
6.修改学生
7.查找学生
8.分页查询
Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
javabean及servlet实验总结200字
JavaBean是一种可重用组件,具有多个属性和方法的Java类。
而Servlet是Java编程语言编写的服务器端程序,用于扩展请求-响应模型以及生成动态web内容。
在进行JavaBean及Servlet实验的过程中,我发现了一些重要的结论和体会:1. JavaBean的优势:通过实验,我发现JavaBean能够有效地封装数据和功能,并且可以在不同的模块中被重用,大大提高了代码的可维护性和扩展性。
2. Servlet的作用:在实验中,我发现Servlet可以接收来自客户端的请求,并且能够生成动态的web内容,具有很高的灵活性和可扩展性。
3. JavaBean和Servlet的配合:在实验中,我成功地将JavaBean和Servlet进行了结合,通过JavaBean封装数据和逻辑,再由Servlet来调用JavaBean中的方法获取数据并生成动态web内容。
4. 实验中遇到的问题:在实验过程中,我也遇到了一些问题,比如如何正确地配置Servlet的映射和如何处理请求参数等。
但通过仔细的学习和实践,我最终克服了这些问题。
5. 对JavaBean及Servlet的展望:通过本次实验,我对JavaBean及Servlet有了更深入的了解,并且对它们在实际项目中的应用也有了更清晰的认识。
我相信在未来的实际项目中,我能够更加熟练地运用JavaBean和Servlet,为项目的开发和维护提供更大的帮助。
通过本次JavaBean及Servlet实验,我不仅学习到了很多理论知识,更重要的是通过实践,更加深入地理解和掌握了JavaBean和Servlet 的使用方法和原理。
这对我的未来学习和工作都具有重要的意义。
JavaBean和Servlet是Java编程中非常重要和常用的两个组件,它们在实际项目中扮演着非常重要的角色。
在进行JavaBean和Servlet 的实验过程中,我深刻地体会到了它们的优势和作用,也遇到了一些问题并通过不断的学习和实践得以解决。
servlet和jsp的增、删、改、查(精)
昆明理工大学信息工程与自动化学院学生实验报告( 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.修改:(二)javaeebean1.创建数据库表格:/****** Script for SelectTopNRows command from SSMS ******/ SELECT TOP 1000 [id],[name],[password],[sex],[age]FROM[SQLdata].[dbo].[student]order by id2.用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 { = 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:14 33;DatabaseName=SQLdata","sa","123581321";} 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 blocke.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 blocke.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 blocke.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 blocke.printStackTrace(;}finally{try {pre.close(;con.close(;} catch (SQLException e {// TODO Auto-generated catch blocke.printStackTrace(;}}return list;}}(三)servlet1. 验证码的生成CheckCodeGet.javapackage 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 responsethrows ServletException, IOException{response.setHeader("Pragma","No-cache";response.setHeader("Cache-Control","no-cache";response.setDateHeader("Expires", 0;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",Font.BOLD,width/count;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_code",valida te_code;for (int i=0;i{//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成g.setColor(newColor(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 responsethrows 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.javapackage 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 responsethrows ServletException, IOException {response.setContentType("text/html";doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows 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.javapackage 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 responsethrows ServletException, IOException {response.setContentType("text/html";doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows 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 intostudent(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(req uest, response;}}4. 用户登录LoginActionsql.javapackage 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. <br>*/public void destroy( {super.destroy(; // Just puts "destroy" string in log // Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows 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",id;session.setAttribute("password",password; response.sendRedirect("userlist.jsp"; System.out.println(id;return;}else{response.sendRedirect("login.jsp";return;}}}public void init(ServletConfig config throwsServletException {// Put your code heresuper.init(config;driverName=config.getInitParameter("driverName";url=config.getInitParameter("url";user=config.getInitParameter("user";pass=config.getInitParameter("pass";}}5、用户查询searchById.javapackage 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 responsethrows ServletException, IOException {doPost(request,response;public void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {response.setContentType("text/html";request.setCharacterEncoding("utf-8";response.setCharacterEncoding("utf-8";//获取用户IDString 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;//用户IDrequest.setAttribute("id",jBean.getId(;//用户姓名request.setAttribute("name",jBean.getName(;//用户密码request.setAttribute("password",jBean.getPassword(; //用户性别String sex="";String man="";String woman="";if(jBean.getSex(!=nullsex=jBean.getSex(.trim(;if(sex.equals("男"{man ="checked";}else{woman ="checked";}}request.setAttribute("man",man;request.setAttribute("woman",woman;//用户年龄request.setAttribute("age",jBean.getAge(;//转发request.getRequestDispatcher("updateuser.jsp".forward(reque st, response;}}6、用户修改updateuser.javapackage 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 responsethrows ServletException, IOException {doPost(request,response;}public void doPost(HttpServletRequest request, HttpServletResponse responsethrows 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 setname=?,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;}}(四)、jsp1、错误页面:error.jsp<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%><%String path = request.getContextPath(;String basePath =request.getScheme(+"://"+request.getServerName(+":"+request.getSe rverPort(+path+"/";%>DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>出错啦!!!title>head><body>对不起!您<%=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.getSe rverPort(+path+"/";%>DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>用户登录页面title><script type="text/javascript">function reImg({var img = document.getElementById("CheckCodeGet";img.src = "CheckCodeGet?rnd=" + Math.random(;}script>head><body><FONT SIZE="5"COLOR="#006699">用户登录FONT><form action="LoginActionsql.do"method="post"><table><tr><td>用户名:td><td><input type="text"name="id"/> td>tr><td>密码:td><td><input type="password"name="password"/> td>tr><tr><td>验证码:td><td><input type="text"name="checkcode"/> td><td><img id="guestbookCaptcha"onclick="this.src='CheckCodeGet?d='+new Date("alt=""src="CheckCodeGet?"width="70"/><a style="text-decoration: none;"onclick="document.getElementById('guestbookCaptcha'.src= 'CheckCodeGet?d='+new Date(" href="#">看不清?a>td>tr><tr><td colspan="2"><center><input type="submit"value="提交">center>td>tr>table>body>html>3、用户主页面:userlist.jsp<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%><%String path = request.getContextPath(;String basePath =request.getScheme(+"://"+request.getServerName(+":"+request.getSe rverPort(+path+"/";%>DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>显示用户记录title>head><body><STYLE type="text/css">STYLE><%String name=(Stringsession.getAttribute("name";out.println(name;%><FONT SIZE="5"COLOR="#006699">恭喜您登录成功!FONT<hr/><center><font color="#006699"size=5>用户信息如下:font><hr><table border=1bgColor="#ffffff"width="500px"height="100px"> <tr><td>ID td><td>姓名td><td>密码td><td>性别td><td>年龄td><td><center>操作center> td>tr><jsp:useBean id="sBean"class="javaee.bean.SqlBean"/><jsp:useBean id="jBean"class="javaee.bean.javabean"/><%String sql ="select * from student order by id";java.util.List list =sBean.getuserlist(sql;for(java.util.Iterator it =list.iterator(;it.hasNext(;{//获取一个JavaBean对象jBean =(javaee.bean.javabeanit.next(;%><tr><td><%=jBean.getId( %>td><td><%=jBean.getName( %>td><td><%=jBean.getPassword( %>td><td><%=jBean.getSex( %>td><td><%=jBean.getAge( %>td><td><a href="insertuser.jsp">增加a><a href="deleteuser?id=<%=jBean.getId(%>">删除a><a href="searchById?id=<%=jBean.getId(%>">更新a>td>tr><% }%>table>center>body>html>4、增加用户:insertuser.jsp<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath(;String basePath = request.getScheme(+"://"+request.getServerName(+":"+request.getServerPort(+path+"/"%>考研复试:英语口语听力全攻略 HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" 数学专业的,或者理科物理的,他问专业术语,你很可能这个词都不认识,这怎么办呢?这里希望考生注意一点。
jsp+javabean实现数据的增删改查,怎样在jsp进行修改或者删除操作完毕之后弹出确认提示框
jsp+javabean实现数据的增删改查,怎样在jsp进行修改或者删除操作完毕之后弹出确认提示框delete.jsp:<%@ page language= "java " contentType= "text/html; charset=gb2312 "%><%@page import= "dao.StudentsDao " %><html><head><title> Delete </title></head><body><jsp:useBean id= "sd " scope= "page " class= "dao.StudentsDao "> </jsp:useBean> <%sd.delete(request.getParameter( "id ")); %> //1<jsp:forward page= "view.jsp "> </jsp:forward></body></html>http://localhost:8080/test/delete.jsp?id=19请问删除操作//1完成之后,应该在哪里,怎样弹出“删除成功!”的提示框?大家都是怎么做的?------解决方案--------------------------------------------------------<body><jsp:useBean id= "sd " scope= "page " class= "dao.StudentsDao "> </jsp:useBean><%int result=sd.delete(request.getParameter( "id ")); %><script type= "text/javascript ">var result= <%=result%> ;if(result==1){alert( '删除成功');}else{alert( '删除失败');}window.location= 'view.jsp ';</script></body>------------------------------------------------------我做的网站()聚会策划助手有时间帮我测试一下,非常感谢!特点:自动通过邮件/手机短信/msn/qq联系朋友架构:webwork2 spring ibatis tomcat5.5 mysql ajax javascript------解决方案--------------------------------------------------------用HIBERANTE的拦截机制拦一下.------解决方案--------------------------------------------------------js做最为简单..if(删除成功)<script>alert( "success ");</script>else<script>alert( "fail ");</script>------解决方案--------------------------------------------------------可以再调用一个javabean操作数据库来判断,是否删除成功,如果成功则out.print( "sucess "),反之则out.print( "flaut ")------解决方案--------------------------------------------------------out.println( " <script> alert( '删除成功') </script> ");------解决方案--------------------------------------------------------用javascript------解决方案--------------------------------------------------------<body><jsp:useBean id= "sd " scope= "page " class= "dao.StudentsDao "> </jsp:useBean><%boolean flag = sd.delete(request.getParameter( "id ")); %><%if(flag){%><script type= "text/javascript ">alert( "删除成功!");</script><%}else{ %><script type= "text/javascript ">alert( "删除失败!");</script><%} %><jsp:forward page= "viewStudents.jsp "> </jsp:forward></body>怎么这样还是没有弹出框呢?在解释后的HTML代码到达浏览器之后,已经被forward掉了,根本不可能弹得出框框来。
基于JSP+JavaBean+Servlet实现模式的增删改模块的设计与实现
基于JSP+JavaBean+Servlet实现模式的增删改模块的设计
与实现
潘国荣
【期刊名称】《信息通信》
【年(卷),期】2017(000)008
【摘要】JSP+JavaBean+Servlet是基于JSP技术的一种开模式.文章介绍了如何利用该模式设计及实现一个典型的增删改模块.
【总页数】3页(P101-103)
【作者】潘国荣
【作者单位】常州刘国钧高等职业技术学校,江苏常州213025
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于通讯技术的移动学习资源设计与实现模式 [J], 李巧丹;夏洪文
2.Java Swing下典型增删改查模块的设计与实现 [J], 潘国荣
3.基于流程模块化的针织衫定制系统设计与实现 [J], 戈垚;唐颖;金鹏;沈雷
4.基于Python数据分析的模块课选课分班软件的设计与实现——以深圳科学高中高二模块课为例 [J], 唐新彩;胡燕
5.基于PaaS平台的学籍异动模块设计与实现 [J], 李运金;吴守仓;张之江
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌航空大学实验报告二二0一四年三月十九日课程名称:JA V A WEB 程序设计实验名称:JavaBean和Servlet完成增删改查班级:11微软班姓名:林平君同组人:指导教师评定:林振荣签名:一、实验目的完成一个数据列表的增删改查功能的实现,以自己创建的表格为例,也可以自己设计数据库的表。
通过本实验能够熟悉和掌握jsp中的数据库CRUD操作。
二、实验要求本实验要求通过javabean来实现数据的存取和表示,通过servlet来进行访问的控制。
给出主要运行的界面和核心代码,并描述系统实现的核心思想。
三、实验步骤1.实现javaBean对数据库的操作。
2.创建jsp页面3.利用servlet对页面对业务流程就行控制。
四、参考源代码1.连接数据库public Connection getConnection() throwsSQLException,InstantiationException,IllegalAccessException,ClassNotFoundException{Connection connection=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInst ance();StringurlString="jdbc:sqlserver://localhost:1433;DatabaseName=StudentManageSys" ;String passwordString="sa";String userString="sa";connection=DriverManager.getConnection(urlString,userString,passwordS tring);return connection;}解释:获取一个数据源,用于连接数据库。
2.利用传入的sql语句查找public ArrayList<student> objectSelect(String sql) throws Exception{ ArrayList<student> result=new ArrayList<student>();Connection connection=null;Statement statement=null;ResultSet resultSet=null;try{connection=getConnection();statement=connection.createStatement();resultSet=statement.executeQuery(sql);while(resultSet.next()){student stu=new student();stu.setSid(resultSet.getInt("sid"));stu.setSsno(resultSet.getString("ssno"));stu.setSname(resultSet.getString("sname"));stu.setSsex(resultSet.getString("ssex"));stu.setIsManage(resultSet.getInt("isManage"));stu.setLoginTimes(resultSet.getInt("loginTimes"));stu.setLoginLastTime(resultSet.getString("loginLastTime"));stu.setPassword(resultSet.getInt("password"));stu.setSage(resultSet.getInt("sage"));result.add(stu);}}catch (SQLException e) {throw new SQLException("select data exception:"+e.getMessage());}catch(Exception exception){throw new Exception("system eexception:"+exception.getMessage());}finally{try{if(resultSet!=null){resultSet.close();}}catch(Exception e){throw new Exception("statement closeexception:"+e.getMessage());}try{if(connection!=null){connection.close();}}catch(Exception e){throw new Exception("Connection closeexception:"+e.getMessage());}}return result;}3.向数据库中插入数据public void insert(student student)throws Exception{Connection connection=null;PreparedStatement pStatement=null;String sql="insert intostudent(ssno,sname,ssex,isManage,password,sage)values('"+student.getSsno()+"','"+student.getSname()+"','"+student.getSse x()+"',"+student.getIsManage()+","+student.getPassword()+","+student.getS age()+")";try{connection=getConnection();pStatement=connection.prepareStatement(sql);pStatement.execute();}catch(SQLException e){throw new Exception("sql a exception:"+e.getMessage());}catch(Exception e){throw new Exception("system a exception:"+e.getMessage());}finally{try{if(pStatement!=null){ pStatement.close(); }}catch(Exception exception){throw new Exception("PrepareStatement close exception:"+exception.getMessage());}}try {if(connection!=null)connection.close();} catch ( Exception e) {// TODO: handle exceptionthrow new Exception("connection closeexception:"+e.getMessage());}}//通过传入的student对象删除表中的数据public void delete(student student) throws Exception{Connection connection=null;PreparedStatement pStatement=null;String sql="delete from student where sid="+student.getSid()+"";try{connection=getConnection();pStatement=connection.prepareStatement(sql);pStatement.execute();}catch (SQLException e) {// TODO: handle exceptionthrow new Exception("SQL a exception:"+e.getMessage());}catch(Exception e){throw new Exception("System a exception:"+e.getMessage());}finally{try{if(pStatement!=null){ pStatement.close(); }}catch(Exception exception){throw new Exception("PrepareStatement close exception:"+exception.getMessage());}}try {if(connection!=null)connection.close();} catch ( Exception e) {// TODO: handle exceptionthrow new Exception("connection closeexception:"+e.getMessage());}}4.修改数据库中的数据public void update(student student)throws Exception{Connection connection=null;PreparedStatement pStatement=null;String sql="update student setssno="+student.getSsno()+",sname='"+student.getSname()+"',ssex='"+student .getSsex()+"'," +"isManage="+student.getIsManage()+",password="+student.getPassword()+ "," +"sage="+student.getSage()+",loginTimes='"+student.getLoginTimes()+"', " +"loginLastTime='"+student.getLoginLastTime()+"'wheresid="+student.getSid()+"";try{connection=getConnection();pStatement=connection.prepareStatement(sql);pStatement.execute();}catch (SQLException e) {// TODO: handle exceptionthrow new Exception("SQL a exception:"+e.getMessage());5.servlet对业务逻辑的控制public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{response.setContentType("text/html");request.setCharacterEncoding("gb2312");response.setCharacterEncoding("gb2312");PrintWriter out=response.getWriter();String name=request.getParameter("username");int password=Integer.parseInt(request.getParameter("password"));int loginTimes;String loginLastTime;HttpSession session = request.getSession();session.setAttribute("username", name);String sql = "select * from student where sname='"+name+"'";ORMDBUtil ormdbUtil=new ORMDBUtil();Date data=new Date();Format fm=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {student stu =new student();student student=new student();ArrayList<student> result=ormdbUtil.objectSelect(sql);if(result.isEmpty()==false){for(int i=0;i<result.size();i++){stu=result.get(i);}loginTimes=stu.getLoginTimes()+1;loginLastTime=fm.format(data);student.setLoginTimes(loginTimes);student.setLoginLastTime(loginLastTime);student.setIsManage(stu.getIsManage());student.setPassword(stu.getPassword());student.setSage(stu.getSage());student.setSname(stu.getSname());student.setSsex(stu.getSsex());student.setSsno(stu.getSsno());student.setSid(stu.getSid());ormdbUtil.update(student);if(password!=stu.getPassword()){out.println("<html>");out.println("<head>");out.println("<title>密码错误</title>");out.println("</head>");out.println("<body>");out.println("<h1>密码错误!</h1>");out.println("</body>");out.println("</html>");}else if(stu.getIsManage()==0){//跳转到普通用户界面//getServletConfig().getServletContext().getRequestDispatcher("/Ordin ary.jsp").forward(request, response);int userId=stu.getSid();request.setAttribute("id", userId);//为id赋值//session.setAttribute("loginTimes", loginTimes);//session.setAttribute("loginLastTime", loginLastTime);//RequestDispatcherde=request.getRequestDispatcher("/Ordinary.jsp");getServletContext().getRequestDispatcher("/Ordinary.jsp").forward(req uest,response);}else if(stu.getIsManage()==1){//重定向跳到管理员界面response.sendRedirect("Manager.jsp");//getServletContext().getRequestDispatcher("/Manager.jsp").forward(re quest,response);}}else//用户不存在{out.println("<html>");out.println("<head>");out.println("<title>用户不存在</title>");out.println("</head>");out.println("<body>");out.println("<h1>用户不存在!</h1>");out.println("</body>");out.println("</html>");}} catch (Exception e) {// TODO Auto-generated catch blocke.getStackTrace();}}五、实验结果1.以管理员身份登陆将跳转到:2.以普遍身份登陆:将跳转到:注册页面:在管理员界面可以看到新注册的:点击修改:六、实验体会本次实验对我的帮助很大,让我更加熟悉了jsp中的逻辑操作,对数据库以及逻辑方面的操作更加的熟练,熟悉了javaBean以及servlet的操作,初步的了解了MVC的框架。