servlet编程基本流程

来源:互联网 发布:vue.js权威指南百度云 编辑:程序博客网 时间:2024/05/22 16:24
好久没有写servlet—jsp类型的web开发了,今天做了一个简单的开发流程。废话不多说上代码。 
1. 创建一个web项目 
2. 创建包: 

3.在index.jsp页面增加一个表单 

Java代码  收藏代码
  1. <h3>增加</h3>  
  2.     <form action="addStudentAction" method="post">  
  3.             用户名:<input type="text" name="addname"/>  
  4.         密码:<input type="text" name="pwd"/>  
  5.         <input type="submit" value="提交"/>  
  6.     </form>  

4.在com.arz.action包中创建一个action也就是一个servlet 
Java代码  收藏代码
  1. package com.arz.action;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. import com.arz.dao.StudentDao;  
  11.   
  12. public class AddStudentAction extends HttpServlet {  
  13.     StudentDao dao = new StudentDao();  
  14.     @Override  
  15.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  16.             throws ServletException, IOException {  
  17.         String name = req.getParameter("addname");  
  18.         System.out.println(name);  
  19.         String pwd = req.getParameter("pwd");  
  20.         dao.add(name, pwd);  
  21.           
  22.             req.getRequestDispatcher("stu/ok.jsp").forward(req, resp);  
  23.           
  24.     }  
  25.   
  26.     @Override  
  27.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  28.             throws ServletException, IOException {  
  29.         doGet(req,resp);  
  30.     }  
  31.       
  32. }  

5.创建dao 
Java代码  收藏代码
  1. package com.arz.dao;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.PreparedStatement;  
  5. import java.sql.ResultSet;  
  6. import java.sql.SQLException;  
  7. import java.util.ArrayList;  
  8. import java.util.List;  
  9.   
  10. import com.arz.po.Student;  
  11. import com.arz.util.JDBCUtil;  
  12.   
  13. public class StudentDao {  
  14.     private static Connection conn = null;  
  15.     private static PreparedStatement ps = null;  
  16.     public void add(String name , String pwd){  
  17.           
  18.         try{  
  19.             conn = JDBCUtil.getConn();  
  20.             String sql = "insert into student(name,pwd)values(?,?)";  
  21.             ps = conn.prepareStatement(sql);  
  22.             ps.setString(1, name);  
  23.             ps.setString(2, pwd);  
  24.             ps.execute();  
  25.         }catch(SQLException e){  
  26.             e.printStackTrace();  
  27.         }finally{  
  28.             JDBCUtil.close(null, ps, conn);  
  29.         }  
  30.     }  
  31.     public void del(String name){  
  32.         try{  
  33.             conn = JDBCUtil.getConn();  
  34.             String sql = "delete from student where name = ?";  
  35.             ps = conn.prepareStatement(sql);  
  36.             ps.setString(1, name);  
  37.             System.out.println(ps.execute());   
  38.         }catch(SQLException e){  
  39.             e.printStackTrace();  
  40.         }finally{  
  41.             JDBCUtil.close(null, ps, conn);  
  42.         }  
  43.     }  
  44.     public List<Student> sel(String name){  
  45.         List<Student> list = new ArrayList<Student>();  
  46.         ResultSet rs = null;  
  47.         try{  
  48.             conn = JDBCUtil.getConn();  
  49.             String sql = "select name,pwd from student where name = ?";  
  50.             ps = conn.prepareStatement(sql);  
  51.             ps.setString(1, name);  
  52.             rs = ps.executeQuery();  
  53.             while(rs.next()){  
  54.                 String sultName = rs.getString(1);  
  55.                 String sultPwd = rs.getString(2);  
  56.                 list.add(new Student(sultName,sultPwd));  
  57.             }  
  58.         }catch(SQLException e){  
  59.             e.printStackTrace();  
  60.         }finally{  
  61.             JDBCUtil.close(rs, ps, conn);  
  62.         }  
  63.         return list;  
  64.     }  
  65.     public static void main(String[] args){  
  66.         StudentDao dao = new StudentDao();  
  67.         List<Student> list = dao.sel("123123");  
  68.         System.out.println(list.size());  
  69.         for(int i = 0;i<list.size();i++){  
  70.               
  71.             System.out.println(list.get(i).getName());  
  72.         }  
  73.     }  
  74. }  

6.创建po 
Java代码  收藏代码
  1. package com.arz.po;  
  2.   
  3. public class Student {  
  4.     private int id ;  
  5.     private String name ;  
  6.     private String pwd;  
  7.     public int getId() {  
  8.         return id;  
  9.     }  
  10.     public void setId(int id) {  
  11.         this.id = id;  
  12.     }  
  13.     public String getName() {  
  14.         return name;  
  15.     }  
  16.     public void setName(String name) {  
  17.         this.name = name;  
  18.     }  
  19.     public String getPwd() {  
  20.         return pwd;  
  21.     }  
  22.     public void setPwd(String pwd) {  
  23.         this.pwd = pwd;  
  24.     }  
  25.     public Student(){}  
  26.     public Student(String name,String pwd){  
  27.         this.name = name;  
  28.         this.pwd = pwd;  
  29.     }  
  30. }  

7.创建工具包,可以方便得到连接和关闭连接 
Java代码  收藏代码
  1. package com.arz.util;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.Statement;  
  6. import java.sql.ResultSet;  
  7.   
  8. public class JDBCUtil {  
  9.     private static Connection conn;   
  10.     private static String url = "jdbc:mysql://localhost:3306/test";  
  11.     private static String user = "root";  
  12.     private static String password = "root";  
  13.     public static Connection getConn() {  
  14.         try{          
  15.             Class.forName("com.mysql.jdbc.Driver");  
  16.             conn = DriverManager.getConnection(url,user,password);  
  17.               
  18.               
  19.         }catch(Exception e){  
  20.             e.printStackTrace();  
  21.         }  
  22.         return conn;  
  23.     }  
  24.     public static void close(ResultSet rs , Statement sta , Connection conn ){  
  25.         if(rs != null){  
  26.             try{  
  27.                 rs.close();  
  28.             }catch(Exception e){  
  29.                 e.printStackTrace();  
  30.             }  
  31.         }  
  32.         if(sta != null){  
  33.             try{  
  34.                 sta.close();  
  35.             }catch(Exception e){  
  36.                 e.printStackTrace();  
  37.             }  
  38.         }  
  39.         if(conn != null){  
  40.             try{  
  41.                 conn.close();  
  42.             }catch(Exception e){  
  43.                 e.printStackTrace();  
  44.             }  
  45.               
  46.         }  
  47.     }  
  48. }  


8.做完这些别忘了导如Mysql的包 
9.然后是配置web.xml 
Java代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.   <welcome-file-list>  
  8.     <welcome-file>index.jsp</welcome-file>  
  9.   </welcome-file-list>  
  10.   <servlet>  
  11.     <servlet-name>student</servlet-name>  
  12.     <servlet-class>com.arz.action.AddStudentAction</servlet-class>  
  13.   </servlet>  
  14.   <servlet-mapping>  
  15.     <servlet-name>student</servlet-name>  
  16.     <url-pattern>/addStudentAction</url-pattern>  
  17.   </servlet-mapping>  
  18. </web-app>  

基本上代码写完了。现在我们要走一下servlet的请求过程 
1. 首先是在index页面输入用户名和密码。 
2. From发出请求(action=” addStudentAction”) 
3. Web容器接受到请求后解析web.xml找到了url-pattern这个元素解析之后就可以找到对应的servlet类。在这个如果不太清楚web容器的可以看看我的“浅析Tomcat”这篇文章里面讲解了tomcat的原理。 
4. 在servlet里面在去寻找对应的方法(get/post)
0 0
原创粉丝点击