分享

JSP与数据库的增删改查

 昵称40913772 2017-03-29

1.准备工作,首先要有一个数据库,在数据库里新建一个表,用来操作id要设置为自动增长列,否则在插入操作无法成功


在MyEclipse中新建一个Web Progect工程

在src目录下建立entity包,dao包

在WebRoot/WebInfo/lib/导入sqljdbc.jar包(用于对数据库进行操作)


2.entity包,用于操作数据库  (这部分用到的成员变量最好直接通过数据库来直接复制,以免存在漏泄,写错单词等低级错误,其他的就是简单的get和set方法了)

  1. package entity;  
  2.   
  3. public class UserInfo {  
  4.     private int id;  
  5.     private String user_name;  
  6.     private String user_sex;  
  7.     private int user_age;  
  8.     private String user_hobby;  
  9.     private String user_city;  
  10.     private String mtext;  
  11.     public int getId() {  
  12.         return id;  
  13.     }  
  14.     public void setId(int id) {  
  15.         this.id = id;  
  16.     }  
  17.     public String getUser_name() {  
  18.         return user_name;  
  19.     }  
  20.     public void setUser_name(String user_name) {  
  21.         this.user_name = user_name;  
  22.     }  
  23.     public String getUser_sex() {  
  24.         return user_sex;  
  25.     }  
  26.     public void setUser_sex(String user_sex) {  
  27.         this.user_sex = user_sex;  
  28.     }  
  29.     public int getUser_age() {  
  30.         return user_age;  
  31.     }  
  32.     public void setUser_age(int user_age) {  
  33.         this.user_age = user_age;  
  34.     }  
  35.     public String getUser_hobby() {  
  36.         return user_hobby;  
  37.     }  
  38.     public void setUser_hobby(String user_hobby) {  
  39.         this.user_hobby = user_hobby;  
  40.     }  
  41.     public String getUser_city() {  
  42.         return user_city;  
  43.     }  
  44.     public void setUser_city(String user_city) {  
  45.         this.user_city = user_city;  
  46.     }  
  47.     public String getMtext() {  
  48.         return mtext;  
  49.     }  
  50.     public void setMtext(String mtext) {  
  51.         this.mtext = mtext;  
  52.     }  
  53. }  


Dao包下用于对数据库的操作数据库

(1)

BaseDao.Java链接数据库(其中的close方法中依次关闭了结果集,操作句柄,链接)

  1. package dao;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.ResultSet;  
  6. import java.sql.Statement;  
  7.   
  8. public class BaseDao {  
  9.     public static Connection getConnection()throws Exception{  
  10.         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  11.         String url="jdbc:sqlserver://127.0.0.1:1433;database=mydb";  
  12.         return DriverManager.getConnection(url, "sa", "sa");  
  13.     }  
  14.       
  15.     public static void close(ResultSet rs,Statement sta,Connection con)throws Exception{  
  16.         if(rs!=null){  
  17.                  //关闭结果集  
  18.                 rs.close();  
  19.         }  
  20.         if(sta!=null){  
  21.                  //关闭操作句柄  
  22.                  sta.close();  
  23.         }  
  24.         if(con!=null){  
  25.                 //关闭链接  
  26.                 con.close();  
  27.         }  
  28.     }  
  29. }  
UserinfoDao.java 

是数据库的增删改查的方法

  1. package dao;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.PreparedStatement;  
  5. import java.sql.ResultSet;  
  6. import java.util.ArrayList;  
  7.   
  8. import entity.UserInfo;  
  9.   
  10. public class UserInfoDao {  
  11.   
  12.     //查询所有(查)  
  13.     public ArrayList findAll(){  
  14.         Connection con=null;  
  15.         PreparedStatement psta=null;  
  16.         ResultSet rs=null;  
  17.         ArrayList list=new ArrayList();  
  18.         String sql="select * from userinfo";  
  19.         try{  
  20.             con=BaseDao.getConnection();  
  21.             psta=con.prepareStatement(sql);  
  22.             rs=psta.executeQuery();  
  23.             while(rs.next()){  
  24.                 UserInfo obj=new UserInfo();  
  25.                 obj.setId(rs.getInt(1));  
  26.                 obj.setUser_name(rs.getString(2));  
  27.                 obj.setUser_sex(rs.getString(3));  
  28.                 obj.setUser_age(rs.getInt(4));  
  29.                 obj.setUser_hobby(rs.getString(5));  
  30.                 obj.setUser_city(rs.getString(6));  
  31.                 obj.setMtext(rs.getString(7));  
  32.                 list.add(obj);  
  33.             }  
  34.         }catch(Exception e){  
  35.             e.printStackTrace();  
  36.         }finally{  
  37.             try{  
  38.                 BaseDao.close(rs, psta, con);  
  39.             }catch(Exception e){  
  40.                 e.printStackTrace();  
  41.             }  
  42.             return list;  
  43.         }  
  44.     }  
  45.       
  46.     //插入方法(增)  
  47.     public boolean save(UserInfo obj){  
  48.         Connection con=null;  
  49.         PreparedStatement psta=null;  
  50.         String sql="insert into userinfo values(?,?,?,?,?,?)";  
  51.         boolean flag=false;  
  52.         try{  
  53.             con=BaseDao.getConnection();  
  54.             psta=con.prepareStatement(sql);  
  55.             psta.setString(1, obj.getUser_name());  
  56.             psta.setString(2, obj.getUser_sex());  
  57.             psta.setString(3, obj.getUser_age()+"");  
  58.             psta.setString(4, obj.getUser_hobby());  
  59.             psta.setString(5, obj.getUser_city());  
  60.             psta.setString(6, obj.getMtext());  
  61.             flag=psta.executeUpdate()>0;  
  62.         }catch(Exception e){  
  63.             e.printStackTrace();  
  64.         }finally{  
  65.             try{  
  66.                 BaseDao.close(null, psta, con);  
  67.             }catch(Exception e){  
  68.                 e.printStackTrace();  
  69.             }  
  70.             return flag;  
  71.         }  
  72.     }  
  73.       
  74.     //删除方法(删)  
  75.     public boolean remove(int id){  
  76.         Connection con=null;  
  77.         PreparedStatement psta=null;  
  78.         boolean flag=false;  
  79.         String sql="delete from userinfo where id=?";  
  80.         try{  
  81.             con=BaseDao.getConnection();  
  82.             psta=con.prepareStatement(sql);  
  83.             psta.setInt(1, id);  
  84.             flag=psta.executeUpdate()>0;  
  85.         }catch(Exception e){  
  86.             e.printStackTrace();  
  87.         }finally{  
  88.             try{  
  89.                 BaseDao.close(null, psta, con);  
  90.             }catch(Exception e){  
  91.                 e.printStackTrace();  
  92.             }  
  93.             return flag;  
  94.         }  
  95.     }  
  96.     //通过id修改,为更新做准备的(改)  
  97.             public UserInfo findById(int id){  
  98.                 Connection con=null;  
  99.                 PreparedStatement psta=null;  
  100.                 ResultSet rs=null;  
  101.                 UserInfo obj=null;  
  102.                 String sql="select * from userinfo where id=?";  
  103.                 try{  
  104.                     con=BaseDao.getConnection();  
  105.                     psta=con.prepareStatement(sql);  
  106.                     psta.setInt(1, id);  
  107.                     rs=psta.executeQuery();  
  108.                     if(rs.next()){  
  109.                         obj=new UserInfo();  
  110.                         obj.setId(rs.getInt(1));  
  111.                         obj.setUser_name(rs.getString(2));  
  112.                         obj.setUser_sex(rs.getString(3));  
  113.                         obj.setUser_age(rs.getInt(4));  
  114.                         obj.setUser_hobby(rs.getString(5));  
  115.                         obj.setUser_city(rs.getString(6));  
  116.                         obj.setMtext(rs.getString(7));  
  117.                     }  
  118.                 }catch(Exception e){  
  119.                     e.printStackTrace();  
  120.                 }finally{  
  121.                     try{  
  122.                         BaseDao.close(rs, psta, con);  
  123.                     }catch(Exception e){  
  124.                         e.printStackTrace();  
  125.                     }  
  126.                     return obj;  
  127.                 }  
  128.             }  
  129.       
  130.     //更新方法(修改数据)(改)  
  131.     public boolean update(UserInfo obj){  
  132.         Connection con=null;  
  133.         PreparedStatement psta=null;  
  134.         String sql="update userinfo set user_name=?,user_sex=?,user_age=?,user_hobby=?,user_city=?,mtext=? where id=?";  
  135.         boolean flag=false;  
  136.         try{  
  137.             con=BaseDao.getConnection();  
  138.             psta=con.prepareStatement(sql);  
  139.             psta.setString(1, obj.getUser_name());  
  140.             psta.setString(2, obj.getUser_sex());  
  141.             psta.setString(3, obj.getUser_age()+"");  
  142.             psta.setString(4, obj.getUser_hobby());  
  143.             psta.setString(5, obj.getUser_city());  
  144.             psta.setString(6, obj.getMtext());  
  145.             psta.setInt(7,obj.getId());  
  146.             flag=psta.executeUpdate()>0;  
  147.         }catch(Exception e){  
  148.             e.printStackTrace();  
  149.         }finally{  
  150.             try{  
  151.                 BaseDao.close(null, psta, con);  
  152.             }catch(Exception e){  
  153.                 e.printStackTrace();  
  154.             }  
  155.             return flag;  
  156.         }  
  157.     }  
  158.       
  159.       
  160. }  


3.界面演示


查找界面

在WebRoot/WEB-INF下的index.jsp下设计要演示的界面

这里为了方便操作还增加了一些删除和修改的跳转链接(这部分是为了方便后续的删除和修改操作)

[javascript] view plain copy
print?
  1. <pre name="code" class="javascript"><%@ page import="java.util.*,dao.*,entity.*" pageEncoding="UTF-8"%>  
  2. <html>  
  3.   <head>    
  4.     <title></title>  
  5.   </head>  
  6.   <%  
  7.     UserInfoDao dao=new UserInfoDao();  
  8.     ArrayList list=dao.findAll();  
  9.    %>  
  10.      
  11.    <script type="text/javascript">  
  12.     function myAction(pid){  
  13.         document.forms[0].id.value=pid;  
  14.         document.forms[0].submit();  
  15.     }  
  16.    </script>  
  17.   <body>  
  18.     <h1 align="center"><br></h1><h1 align="center">    用户信息</h1>  
  19.     <form action="doRemove.jsp" method="post">  
  20.         <!-- 用于存放选择的id,然后会随表单提交给服务器处理页面 -->  
  21.         <input type="hidden" name="id">  
  22.         <table align="center" border="1" width="80%">  
  23.             <tr>  
  24.                 <td colspan="8" align="right">  
  25.                     <a href="add.jsp">添加新信息</a>  
  26.                 </td>  
  27.             </tr>  
  28.             <tr>  
  29.                 <th>编号</th>  
  30.                 <th>姓名</th>  
  31.                 <th>性别</th>  
  32.                 <th>年龄</th>  
  33.                 <th>爱好</th>  
  34.                 <th>城市</th>  
  35.                 <th>描述</th>  
  36.                 <th>操作</th>  
  37.             </tr>  
  38.             <%for(int i=0;i<list.size();i++){  
  39.                 UserInfo obj=(UserInfo)list.get(i);%>  
  40.                 <!--Html代码-->  
  41.                 <tr>  
  42.                     <td><%=obj.getId()%></td>  
  43.                     <td><%=obj.getUser_name()%></td>  
  44.                     <td><%=obj.getUser_sex()%></td>  
  45.                     <td><%=obj.getUser_age()%></td>  
  46.                     <td><%=obj.getUser_hobby()%></td>  
  47.                     <td><%=obj.getUser_city()%></td>  
  48.                     <td><%=obj.getMtext()%></td>  
  49.                     <td>  
  50.                         <%-- <a href="doRemove.jsp?id=<%=obj.getId()%>">删除</a> --%>、  
  51.                         <a href="update.jsp?id=<%=obj.getId()%>">修改</a>   
  52.                         <input type="button" value="删除" onclick="myAction('<%=obj.getId()%>')"/>  
  53.                     </td>  
  54.                 </tr>  
  55.             <%}%>  
  56.         </table>  
  57.     </form>  
  58.   </body>  
  59. <html>  

对于JSP    onclick的方法中提交时可以用document.forms[0].name.value    (name为表单的名字,这个表单中为id)      

                                 或者 document.表单名.控件名.value   提交的必须是<input/>中的



打开数据库,开启服务器后,在浏览器中键入地址后的界面如下

这样查询的操作就完成了

4.下面进行添加数据的操作

设计add.jsp提供数据添加的界面

[javascript] view plain copy
print?
  1. <%@ page import="java.util.*" pageEncoding="UTF-8"%>  
  2.   
  3. <html>  
  4.   <head>  
  5.     <title></title>  
  6.   </head>  
  7.   <!-- JavaScript是搭配HTML使用的脚本代码,可以帮助我们操作HTML内容和浏览器本身 -->  
  8.   <!-- JavaScript可以做很多很多事情,甚至可以用来编写游戏和强大的基于浏览器的应用  
  9.   然而更普遍的功能是利用JavaScript帮助我们进行表单验证,确保提交的数据是符合服务器业务处理要求的 -->  
  10.   <script type="text/javascript">  
  11.     function myBack(){  
  12.         //将浏览器导航为index.jsp,location.href属性可以更改当前浏览器地址栏的内容  
  13.         location.href="index.jsp";  
  14.         //window.location.href="index.jsp";  
  15.    
  16.     }  
  17.     //mySubmit方法用于提交表单,并且在提交之前验证表单数据的格式是否符合要求  
  18.     function mySubmit(){  
  19.         //先来个简单的,验证姓名必须有填写,不能为空  
  20.         //首先获取姓名输入框的数据  
  21.         //document是文档对象,代表整个HTML页面  
  22.         //forms是表单集合,如果存在多个表单的话,索引从0开始,并且是从上往下编号   如果表单有表单名可以用<span style="font-family:FangSong_GB2312;"><strong>document.表单名.控件名.value </strong></span>  
  23.         //user_name是表单下控件的名字  
  24.         //value是获取这个控件的value值  
  25.         //length是一个属性,返回长度  
  26.         //var是变量,JavaScript是弱类型语言,也就是说不区分int,double,Object这些类型  
  27.         //而是统一使用var表示  
  28.         var name=document.forms[0].user_name;  
  29.                //通过document.getElementById(“id名”) 可以获取非<input /> 中的内容,但是dojsp无法获取           
  30.                 var name_msg=document.getElementById("name_msg");  
  31.         var hobby_msg=document.getElementById("hobby_msg");  
  32.         name_msg.innerHTML="";  
  33.         hobby_msg.innerHTML="";  
  34.         if(name.value.length==0){  
  35.             //提示用户  
  36.             //alert("姓名为必填项");  
  37.             name_msg.innerHTML="<font color='red'>*姓名为必填项</font>";  
  38.             //聚焦(鼠标定位)  
  39.                         name.focus();  
  40.             return ;//中断方法的运行  
  41.         }  
  42.         //对于多选的控件判断会稍微麻烦点点哦  
  43.         var hobby_item=document.forms[0].user_hobby;  
  44.         var flag=false;  
  45.         for(var i=0;i<hobby_item.length;i++){  
  46.             if(hobby_item[i].checked==true){  
  47.                 flag=true;  
  48.                 break;  
  49.             }  
  50.         }  
  51.         if(flag==false){  
  52.             //alert("至少选择一个爱好");  
  53.             hobby_msg.innerHTML="<font color='red'>*至少选择一个爱好</font>";  
  54.             return ;  
  55.         }  
  56.         document.forms[0].submit();//submit是提交方法  
  57.     }  
  58.   </script>  
  59.   <body>  
  60.     <h1 align="center">新增信息</h1>  
  61.     <form action="doadd.jsp" method="post" >  
  62.         <table align="center" width="50%">  
  63.             <!-- 姓名 -->  
  64.             <tr>  
  65.                 <td align="right" width="37%">姓名:</td>  
  66.                 <td align="left" width="25%"><input type="text" name="user_name" ></td>   
  67.                 <td>  
  68.                     <div id="name_msg" align="left"></div>  
  69.                 </td>  
  70.             </tr>  
  71.             <!-- 性别 -->  
  72.             <tr>  
  73.                 <td align="right">性别:</td>  
  74.                 <td align="left" colspan="2"><input type="radio" name="user_sex" value="男" checked="checked">男  
  75.                 <input type="radio" name="user_sex" value="女" />女</td>   
  76.             </tr>  
  77.             <!-- 年龄 -->  
  78.             <tr>  
  79.                 <td align="right">年龄:</td>  
  80.                 <td align="left" colspan="2"><select name="user_age">  
  81.                 <% for(int i=18;i<=30;i++){%>  
  82.                     <option value="<%=i%>" ><%=i%></option>  
  83.                 <%} %>  
  84.                 </select></td>   
  85.             </tr>  
  86.             <!-- 爱好 -->  
  87.             <tr>  
  88.                 <td align="right">爱好:</td>  
  89.                 <td align="left"><input  type="checkbox" name="user_hobby" value="唱歌"/>唱歌  
  90.                 <input type="checkbox" name="user_hobby" value="跳舞"/>跳舞  
  91.                 <input type="checkbox" name="user_hobby" value="阅读"/>阅读 </td>   
  92.                 <td>  
  93.                     <div id="hobby_msg"></div>  
  94.                 </td>  
  95.             </tr>  
  96.             <!-- 城市 -->  
  97.             <tr>  
  98.                 <td align="right" valign="middle">城市:</td>  
  99.                 <td align="left" colspan="2"><select name="user_city" multiple="multiple" size="9  ">  
  100.                     <option value="北京">北京        </option>  
  101.                     <option value="南京">南京        </option>  
  102.                     <option value="成都">成都        </option>  
  103.                     <option value="杭州">杭州        </option>  
  104.                     <option value="深圳">深圳        </option>  
  105.                     <option value="西安">西安        </option>  
  106.                     <option value="长沙">长沙        </option>  
  107.                     <option value="武汉">武汉        </option>  
  108.                     <option value="上海">上海        </option>  
  109.                 </select></td>   
  110.             </tr>  
  111.             <!-- 描述 -->  
  112.             <tr>  
  113.                 <td align="right" valign="middle">描述:</td>  
  114.                 <td align="left" colspan="2"><textarea rows="8" name="mtext"></textarea></td>  
  115.             </tr>  
  116.             <!-- 按钮 -->  
  117.             <tr>  
  118.                 <td align="center" colspan="3">  
  119.                     <input type="button" value="添加" onclick="mySubmit()">  
  120.                           
  121.                     <input type="button" value="返回"  onclick="myBack()">  
  122.                 </td>  
  123.             </tr>  
  124.         </table>  
  125.     </form>  
  126.   </body>  
  127. </html>  


这个界面要将新添加的信息发送给doadd.jsp页面,因此表单中要有post方式

界面如下


而doadd.jsp 是处理操作的页面,并非用于显示数据,所以无需任何HTML代码,只是将上一个add.jsp传递过来的数据进行处理,不用于在浏览器上显示出来

[javascript] view plain copy
print?
  1. <%@ page import="java.util.*,entity.*,dao.*" pageEncoding="UTF-8"%>  
  2. <!-- 处理操作的页面,并非用于显示数据,所以无需任何HTML代码 -->  
  3. <%  
  4.     //接收数据,在JSP中每个页面都具备一个隐藏的对象,这个对象包含着所有提交的请求信息  
  5.     //这就是request对象,也成为请求对象  
  6.     //request是一个隐式对象,所谓的隐式对象是无需声明直接使用的对象(事实上声明是存在的,不过不由我们来做)  
  7.     //getParameter是request中最常见的方法,作用是根据传入的name获取value  
  8.     //setCharacterEncoding是设置请求对象中参数的编码,必须在调用getParameter之前调用该方法  
  9.     //并且一般来说这里的编码要和提交页面的编码一致  
  10.     request.setCharacterEncoding("UTF-8");  
  11.     String user_name=request.getParameter("user_name");  
  12.     String user_sex=request.getParameter("user_sex");  
  13.     String user_age=request.getParameter("user_age");  
  14.     //getParameterValues可以获取name对应的一组value(如果name下有多个value被提交的话)  
  15.     String[] s1=request.getParameterValues("user_hobby");  
  16.     StringBuffer user_hobby=new StringBuffer();  
  17.     for(int i=0;s1!=null&&i<s1.length;i++){  
  18.       user_hobby.append(s1[i]);  
  19.       if(i<s1.length-1){  
  20.        user_hobby.append(",");  
  21.       }  
  22.     }  
  23.     String[] s2=request.getParameterValues("user_city");  
  24.     StringBuffer user_city=new StringBuffer();  
  25.     for(int i=0;s2!=null&&i<s2.length;i++){  
  26.         user_city.append(s2[i]);  
  27.         if(i<s2.length-1){  
  28.             user_city.append(",");  
  29.         }  
  30.     }  
  31.     String mtext=request.getParameter("mtext");  
  32.     UserInfo obj=new UserInfo();  
  33.     obj.setUser_name(user_name);  
  34.     obj.setUser_sex(user_sex);  
  35.     obj.setUser_age(Integer.parseInt(user_age));  
  36.     obj.setUser_hobby(user_hobby.toString());  
  37.     obj.setUser_city(user_city.toString());  
  38.     obj.setMtext(mtext);  
  39.       
  40.     UserInfoDao dao=new UserInfoDao();  
  41.     dao.save(obj);  
  42.       
  43.     //除了request外,还有个隐藏的对象叫response  
  44.     //response也是隐式对象,无需声明就可以直接使用  
  45.     //和request不同的地方在于,它是表示响应  
  46.     //现在我们要做的时候结束完所有工作后,页面重新为index.jsp  
  47.     //所以需要通过响应对象将index.jsp页面响应回客户浏览器,否则客户浏览器得到的是doadd.jsp的页面代码  
  48.     //换句话说就是空无一物  
  49.     response.sendRedirect("index.jsp");  
  50. %>  

接下来进行删除操作

doRemove.jsp

[javascript] view plain copy
print?
  1. <%@ page import="java.util.*,dao.*" pageEncoding="UTF-8"%>  
  2. <%  
  3.     request.setCharacterEncoding("UTF-8");  
  4.     UserInfoDao dao=new UserInfoDao();  
  5.     int id=Integer.parseInt(request.getParameter("id"));  
  6.     String msg="操作出问题了,请稍后重试,或联系管理员";  
  7.     if(dao.remove(id)){  
  8.         msg="恭喜你,操作成功,成功删除id为"+id+"的数据";  
  9.     }  
  10.     //response.sendRedirect是重定向  
  11.     //重定向会让我们的浏览器显示指定的页面,但是对于用户来说无法得知操作是否成功(只能通过查看显示的页面效果来判断)  
  12.     //除了重定向以外还有3种提示效果  
  13.     /  
  14.     //1.弹出对话框,等待用户确认消息后再继续前往下一个页面  
  15.     //2.显示信息,在一段时间后自动前往下一个页面  
  16.     //response.sendRedirect("index.jsp");  
  17.  %>  
  18.  <%--  
  19. <script type="text/javascript">  
  20.     alert("<%=msg%>");  
  21.     location.href="index.jsp";  
  22. </script>  
  23.  --%>  
  24. <%--  
  25. JSP是一个多种代码混杂的编写环境,其中包括的代码可以分为服务器端代码和客户端代码  
  26. 所谓的服务器端代码是指运行在服务器环境中,由服务器负责解析和执行的代码,在JSP中Java代码就是服务器端代码  
  27. 而其他的HTML,JS,CSS等代码都是客户端代码,是由浏览器来解析和执行  
  28. 从请求响应模式的流程来说,是先执行服务器代码,然后执行客户端代码  
  29. 在这个执行过程中不会去考虑混杂在一起后的先后顺序问题  
  30. 简单的说,就是执行Java代码的时候,HTML,JS等代码是完全忽略的  
  31. 而执行HTML,JS等代码的时候,Java代码早已执行完毕,所有Java代码的地方已经变成运行后的结果  
  32.  --%>  
  33. <%//response.sendRedirect("index.jsp"); %>  
  34. <!-- 2.显示信息,在一段时间后自动前往下一个页面 -->  
  35. <%--   
  36. <html>  
  37.     <head>  
  38.         <meta http-equiv="refresh" content="5;index.jsp">  
  39.     </head>  
  40. </html>  
  41. <h1><%=msg%>,5秒后返回首页,如浏览器无反应,<a href="index.jsp">请点击</a></h1>  
  42. --%>  
  43. <div id="msg"><h1><%=msg%>,5秒后返回首页,如浏览器无反应,<a href="index.jsp">请点击</a></h1></div>  
  44. <script type="text/javascript">  
  45.     var count=4;  
  46.     window.setInterval(function(){  
  47.         if(count==0){  
  48.             location.href="index.jsp";  
  49.         }  
  50.         var div_msg=document.getElementById("msg");  
  51.         div_msg.innerHTML="<h1><%=msg%>,"+count+"秒后返回首页,如浏览器无反应,<a href='index.jsp'>请点击</a></h1>"  
  52.         count--;  
  53.     }, 1000);  
  54. </script>  
修改操作update.jsp

[javascript] view plain copy
print?
  1. <%@ page import="java.util.*,dao.*,entity.*" pageEncoding="UTF-8"%>  
  2. <%  
  3.     request.setCharacterEncoding("UTF-8");  
  4.     int id=Integer.parseInt(request.getParameter("id"));  
  5.     UserInfoDao dao=new UserInfoDao();  
  6.     UserInfo obj=dao.findById(id);  
  7.       
  8.     //准备好常量  
  9.     ArrayList sexs=new ArrayList();  
  10.     sexs.add("男");  
  11.     sexs.add("女");  
  12.     ArrayList hobbys=new ArrayList();  
  13.     hobbys.add("唱歌");  
  14.     hobbys.add("跳舞");  
  15.     hobbys.add("阅读");  
  16.     ArrayList citys=new ArrayList();  
  17.     citys.add("北京");  
  18.     citys.add("南京");  
  19.     citys.add("成都");  
  20.     citys.add("杭州");  
  21.     citys.add("深圳");  
  22.     citys.add("西安");  
  23.     citys.add("长沙");  
  24.     citys.add("武汉");  
  25.     citys.add("上海");  
  26.  %>  
  27. <html>  
  28.   <head>  
  29.     <title></title>  
  30.   </head>  
  31.   <script type="text/javascript">  
  32.     function myBack(){  
  33.         location.href="index.jsp";  
  34.     }  
  35.     
  36.     function mySubmit(){  
  37.         var name=document.forms[0].user_name;  
  38.         var name_msg=document.getElementById("name_msg");  
  39.         var hobby_msg=document.getElementById("hobby_msg");  
  40.         name_msg.innerHTML="";  
  41.         hobby_msg.innerHTML="";  
  42.         if(name.value.length==0){  
  43.             name_msg.innerHTML="<font color='red'>*姓名为必填项</font>";  
  44.             name.focus();  
  45.             return ;  
  46.         }  
  47.         var hobby_item=document.forms[0].user_hobby;  
  48.         var flag=false;  
  49.         for(var i=0;i<hobby_item.length;i++){  
  50.             if(hobby_item[i].checked==true){  
  51.                 flag=true;  
  52.                 break;  
  53.             }  
  54.         }  
  55.         if(flag==false){  
  56.             hobby_msg.innerHTML="<font color='red'>*至少选择一个爱好</font>";  
  57.             return ;  
  58.         }  
  59.         document.forms[0].submit();  
  60.     }  
  61.   </script>  
  62.   <body>  
  63.     <h1 align="center">修改信息</h1>  
  64.     <form action="doUpdate.jsp" method="post" >  
  65.         <input type="hidden" name="id" value="<%=obj.getId()%>">  
  66.         <table align="center" width="50%">  
  67.             <!-- 姓名 -->  
  68.             <tr>  
  69.                 <td align="right" width="37%">姓名:</td>  
  70.                 <td align="left" width="25%"><input type="text" name="user_name" value="<%=obj.getUser_name()%>" ></td>   
  71.                 <td>  
  72.                     <div id="name_msg" align="left"></div>  
  73.                 </td>  
  74.             </tr>  
  75.             <!-- 性别 -->  
  76.             <tr>  
  77.                 <td align="right">性别:</td>  
  78.                 <td align="left" colspan="2">  
  79.                     <%for(int i=0;i<sexs.size();i++){%>  
  80.                         <input type="radio" name="user_sex" value="<%=sexs.get(i).toString()%>"  
  81.                         <%if(obj.getUser_sex().equalsIgnoreCase(sexs.get(i).toString())){%>  
  82.                         checked="checked"  
  83.                         <% } %>  
  84.                         /><%=sexs.get(i).toString()%>  
  85.                     <% } %>  
  86.                 </td>   
  87.             </tr>  
  88.             <!-- 年龄 -->  
  89.             <tr>  
  90.                 <td align="right">年龄:</td>  
  91.                 <td align="left" colspan="2"><select name="user_age">  
  92.                 <% for(int i=18;i<=30;i++){%>  
  93.                     <option value="<%=i%>" <%if(obj.getUser_age()==i){out.print("selected='selected'");} %>><%=i%></option>  
  94.                 <%} %>  
  95.                 </select></td>   
  96.             </tr>  
  97.             <!-- 爱好 -->  
  98.             <tr>  
  99.                 <td align="right">爱好:</td>  
  100.                 <td align="left">  
  101.                 <%for(int i=0;i<hobbys.size();i++){%>  
  102.                     <input  type="checkbox" name="user_hobby" value="<%=hobbys.get(i).toString()%>"<%if(obj.getUser_hobby().indexOf(hobbys.get(i).toString())!=-1){%>checked="checked"<%}%>/><%=hobbys.get(i).toString()%><% } %>  
  103.              </td>   
  104.                 <td>  
  105.                     <div id="hobby_msg"></div>  
  106.                 </td>  
  107.             </tr>  
  108.             <!-- 城市 -->  
  109.             <tr>  
  110.                 <td align="right" valign="middle">城市:</td>  
  111.                 <td align="left" colspan="2"><select name="user_city" multiple="multiple" size="9  ">  
  112.                     <%for(int i=0;i<citys.size();i++){%>  
  113.                         <option value="<%=citys.get(i).toString()%>"  <%if(obj.getUser_city().indexOf(citys.get(i).toString())!=-1){%>selected="selected"<%} %>><%=citys.get(i).toString()%>        </option>  
  114.                     <%} %>  
  115.                 </select></td>   
  116.             </tr>  
  117.             <!-- 描述 -->  
  118.             <tr>  
  119.                 <td align="right" valign="middle">描述:</td>  
  120.                 <td align="left" colspan="2"><textarea rows="8" name="mtext"><%=obj.getMtext()%></textarea></td>  
  121.             </tr>  
  122.             <!-- 按钮 -->  
  123.             <tr>  
  124.                 <td align="center" colspan="3">  
  125.                     <input type="button" value="修改" onclick="mySubmit()">  
  126.                           
  127.                     <input type="button" value="返回"  onclick="myBack()">  
  128.                 </td>  
  129.             </tr>  
  130.         </table>  
  131.     </form>  
  132.   </body>  
  133. </html>  

doUpdate.jsp
[javascript] view plain copy
print?
  1. <%@ page import="java.util.*,dao.*,entity.*" pageEncoding="UTF-8"%>  
  2. <%  
  3.     request.setCharacterEncoding("UTF-8");  
  4.     String user_name=request.getParameter("user_name");  
  5.     String user_sex=request.getParameter("user_sex");  
  6.     String user_age=request.getParameter("user_age");  
  7.     //如果多选控件没有选定值的话,返回是null而非长度为0的数组  
  8.     String[] hobbys=request.getParameterValues("user_hobby");  
  9.     StringBuffer user_hobby=new StringBuffer();  
  10.     for(int i=0;hobbys!=null&&i<hobbys.length;i++){  
  11.         user_hobby.append(hobbys[i]);  
  12.         if(i<hobbys.length-1){  
  13.             user_hobby.append(",");  
  14.         }  
  15.     }  
  16.     String[] citys=request.getParameterValues("user_city");  
  17.     StringBuffer user_city=new StringBuffer();  
  18.     for(int i=0;citys!=null&&i<citys.length;i++){  
  19.         user_city.append(citys[i]);  
  20.         if(i<citys.length-1){  
  21.             user_city.append(",");  
  22.         }  
  23.     }  
  24.     String mtext=request.getParameter("mtext");  
  25.     int id=Integer.parseInt(request.getParameter("id"));  
  26.       
  27.       
  28.     UserInfo obj=new UserInfo();  
  29.     obj.setId(id);  
  30.     obj.setUser_name(user_name);  
  31.     obj.setUser_sex(user_sex);  
  32.     obj.setUser_age(Integer.parseInt(user_age));  
  33.     obj.setUser_hobby(user_hobby.toString());  
  34.     obj.setUser_city(user_city.toString());  
  35.     obj.setMtext(mtext);  
  36.     UserInfoDao dao=new UserInfoDao();  
  37.     dao.update(obj);  
  38.     response.sendRedirect("index.jsp");  
  39.       
  40. %>  




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多