一個(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("云過夢(mèng)無痕");
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-07
Java的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

