一個(gè)Servlet是如何處理多個(gè)請(qǐng)求的?
1、servlet層
package com.ycz.controller; import com.alibaba.fastjson.JSON; import com.ycz.dao.PeopleDao; import com.ycz.domain.People; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @Description * @ClassName MyServlet * @Author yanchengzhi * @date 2021.06.06 20:16 */ public class MyServlet extends HttpServlet { PeopleDao peopleDao = new PeopleDao(); /* * @description: servlet的核心方法,每個(gè)servlet請(qǐng)求都會(huì)經(jīng)過此方法處理 * @param: [req, res] * @return: void * @author: yanchengzhi * @date: 2021/6/14 10:52 */ @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { HttpServletRequest request = (HttpServletRequest)req; HttpServletResponse response = (HttpServletResponse)res; String command = request.getParameter("COMMAND"); if("ADD".equals(command)) { addPeople(request,response); return; } if("UPDATE".equals(command)){ updatePeople(request,response); return; } if("DEL".equals(command)) { deletePeople(request,response); return; } if("FIND".equals(command)) { findById(request,response); return; } if("FINDALL".equals(command)) { findAll(request,response); return; } } /* * @description: 添加 * @param: [request, response] * @return: void * @author: yanchengzhi * @date: 2021/6/14 10:51 */ private void addPeople(HttpServletRequest request,HttpServletResponse response) throws IOException { People people = new People(); people.setName("云過夢無痕"); people.setBirth(new Date()); people.setTag(0); response.setContentType("text/html;charset=utf-8"); //response.setContentType("text/plain; charset=UTF-8"); PrintWriter writer = response.getWriter(); int res = peopleDao.addPeople(people); if(res > 0){ writer.write("<h2>添加成功!</h2>"); } else { writer.write("<h2>添加失敗!</h2>"); } writer.flush(); writer.close(); } /* * @description: 修改 * @param: [request, response] * @return: void * @author: yanchengzhi * @date: 2021/6/14 10:54 */ private void updatePeople(HttpServletRequest request,HttpServletResponse response) throws IOException { // 獲取修改記錄的id Integer id = Integer.parseInt(request.getParameter("id")); People p = new People(); p.setName("yanchengzhi"); Calendar calendar = Calendar.getInstance(); calendar.set(1995,9,18); Date date = calendar.getTime(); p.setBirth(date); int res = peopleDao.updatePeople(p,id); response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); if(res > 0){ writer.write("<h2>修改成功!</h2>"); } else { writer.write("<h2>修改成功!</h2>"); } writer.flush(); writer.close(); } /* * @description: 刪除記錄 * @param: [request, response] * @return: void * @author: yanchengzhi * @date: 2021/6/14 12:15 */ private void deletePeople(HttpServletRequest request,HttpServletResponse response) throws IOException{ Integer id = Integer.parseInt(request.getParameter("id")); int res = peopleDao.delPeople(id); response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); if(res > 0) { writer.write("<h2>刪除成功!</h2>"); } else { writer.write("<h2>刪除失?。?lt;/h2>"); } writer.flush(); writer.close(); } /* * @description: 按照id查詢 * @param: [request, response] * @return: void * @author: yanchengzhi * @date: 2021/6/14 14:20 */ private void findById(HttpServletRequest request,HttpServletResponse response) { Integer id = Integer.parseInt(request.getParameter("id")); People p = peopleDao.findById(id); if(p != null) { System.out.println("查找的記錄信息如下:"); System.out.println("-------------------"); System.out.println("Id號(hào):" + p.getId()); System.out.println("姓名:" + p.getName()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); System.out.println("生日:" + sdf.format(p.getBirth())); System.out.println("Tag標(biāo)記:" + p.getTag()); } else { System.out.println("查詢的記錄不存在!"); } } private void findAll(HttpServletRequest request,HttpServletResponse response) throws IOException{ List<People> list = peopleDao.findAll(); response.setContentType("text/plain;charset=utf-8"); PrintWriter writer = response.getWriter(); if(list != null && list.size() > 0){ // 轉(zhuǎn)為json串 String jsonStr = JSON.toJSONString(list); writer.write(jsonStr); } else { writer.write("查無數(shù)據(jù)!"); } } }
關(guān)注重點(diǎn)是service方法里的這些代碼:
然后jsp中的代碼如下:
可以看到一個(gè)共同點(diǎn),就是所有的a鏈接后面都帶有一個(gè)COMMAND參數(shù),只是綁定的值不一樣,就是根據(jù)這個(gè)綁定的值,來進(jìn)入到不同的業(yè)務(wù)方法中。
2、dao層代碼
package com.ycz.dao; import com.ycz.conf.DataSourceManager; import com.ycz.domain.People; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; /** * @Description 數(shù)據(jù)訪問層 * @ClassName PeopleDao * @Author yanchengzhi * @date 2021.06.08 08:50 */ public class PeopleDao { /* * @description: 添加 * @param: [people] * @return: int * @author: yanchengzhi * @date: 2021/6/14 11:03 */ public int addPeople(People people){ int res = 0; String sql = "insert into people (name,birth,tag) values (?,UNIX_TIMESTAMP(?),?)"; Connection connection = DataSourceManager.getConnection(); PreparedStatement ps = null; try { ps = connection.prepareStatement(sql); ps.setString(1,people.getName()); ps.setDate(2,new Date(people.getBirth().getTime())); ps.setInt(3,people.getTag()); res = ps.executeUpdate(); } catch (Exception e){ e.printStackTrace(); } finally { DataSourceManager.closeConnection(connection); DataSourceManager.closeStatement(ps); } return res; } /* * @description: 修改 * @param: [p, id] * @return: int * @author: yanchengzhi * @date: 2021/6/14 11:03 */ public int updatePeople(People p, Integer id) { int res = 0; String sql = "update people set name = ?,birth = UNIX_TIMESTAMP(?) where id = ?"; Connection connection = DataSourceManager.getConnection(); PreparedStatement ps = null; try { ps = connection.prepareStatement(sql); ps.setString(1,p.getName()); ps.setDate(2,new Date(p.getBirth().getTime())); ps.setInt(3,id); res = ps.executeUpdate(); } catch (Exception e){ e.printStackTrace(); } finally { DataSourceManager.closeConnection(connection); DataSourceManager.closeStatement(ps); } return res; } /* * @description: 刪除 * @param: [id] * @return: int * @author: yanchengzhi * @date: 2021/6/14 12:20 */ public int delPeople(Integer id) { int res = 0; String sql = "delete from people where id = ?"; Connection connection = DataSourceManager.getConnection(); PreparedStatement ps = null; try { ps = connection.prepareStatement(sql); ps.setInt(1,id); res = ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { DataSourceManager.closeConnection(connection); DataSourceManager.closeStatement(ps); } return res; } /* * @description: 按照id查詢 * @param: [id] * @return: com.ycz.domain.People * @author: yanchengzhi * @date: 2021/6/14 14:20 */ public People findById(Integer id) { String sql = "select id,name,FROM_UNIXTIME(birth) birthday,tag from people where id = ?"; Connection connection = DataSourceManager.getConnection(); PreparedStatement ps = null; ResultSet resultSet = null; try { ps = connection.prepareStatement(sql); ps.setInt(1,id); resultSet = ps.executeQuery(); while(resultSet.next()){ People p = new People(); p.setId(resultSet.getInt("id")); p.setName(resultSet.getString("name")); p.setBirth(resultSet.getDate("birthday")); p.setTag(resultSet.getInt("tag")); return p; } } catch (Exception e) { e.printStackTrace(); } finally { DataSourceManager.closeConnection(connection); DataSourceManager.closeStatement(ps); DataSourceManager.closeResultSet(resultSet); } return null; } /* * @description: 查詢所有記錄 * @param: [] * @return: java.util.List<com.ycz.domain.People> * @author: yanchengzhi * @date: 2021/6/14 14:43 */ public List<People> findAll() { List<People> peoples = new ArrayList<>(); String sql = "select id,name,FROM_UNIXTIME(birth) birthday,tag from people"; Connection connection = DataSourceManager.getConnection(); PreparedStatement ps = null; ResultSet resultSet = null; try { ps = connection.prepareStatement(sql); resultSet = ps.executeQuery(); while(resultSet.next()){ People p = new People(); p.setId(resultSet.getInt("id")); p.setName(resultSet.getString("name")); p.setBirth(resultSet.getDate("birthday")); p.setTag(resultSet.getInt("tag")); peoples.add(p); } } catch (Exception e) { e.printStackTrace(); } finally { DataSourceManager.closeConnection(connection); DataSourceManager.closeStatement(ps); DataSourceManager.closeResultSet(resultSet); } return peoples; } }
3、web.xml
到此這篇關(guān)于一個(gè)Servlet是如何處理多個(gè)請(qǐng)求的?的文章就介紹到這了,更多相關(guān)Servlet處理多個(gè)請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法
最近在工作遇到的一個(gè),發(fā)現(xiàn)網(wǎng)上的資料較少,所以想著總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于Spring中實(shí)現(xiàn)接口動(dòng)態(tài)的解決方法,文中通過完整的示例代碼給大家介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07Java的Struts框架中的if/else標(biāo)簽使用詳解
這篇文章主要介紹了Java的Struts框架中的if/else標(biāo)簽使用詳解,Struts是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-12-12使用jaxp進(jìn)行dom解析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了使用jaxp進(jìn)行dom解析的相關(guān)資料,需要的朋友可以參考下2017-08-08一小時(shí)迅速入門Mybatis之實(shí)體類別名與多參數(shù) 動(dòng)態(tài)SQL
這篇文章主要介紹了一小時(shí)迅速入門Mybatis之實(shí)體類別名與多參數(shù) 動(dòng)態(tài)SQL,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09