您的位置:首页 > 其它

利用servlet对客户端增删改的请求进行响应

2012-08-21 00:17 405 查看
今天简单学习了servlet,它是java服务器端的程序组件,可以对客户端的请求进行响应。

一、我们若想用它,需要创建一个类,继承HttpServlet。一般的我们都要重写它的doGet方法和doPost方法来响应客户端的提交。

一般都是一个表对应一个servlet,我依旧已教师为例,发一下我做的,代码如下:

 

package com.jsp.servlet;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jdbc.entity.TeacherEntity;
import com.jdbc.manager.SchoolManager;

public class Teacher_Servlet extends HttpServlet{

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String caozuo=request.getParameter("caozuo");
if(caozuo.equals("add")){
this.addNewTeacherInfo(request, response);
}
if(caozuo.equals("del")){
this.delTeacherInfoById(request, response);
}
if(caozuo.equals("upd")){
this.updTeacherInfo(request, response);
}
}
private void addNewTeacherInfo(HttpServletRequest request, HttpServletResponse response) throws IOException{

String tid=request.getParameter("tid");
String tname=request.getParameter("tname");
String tage=request.getParameter("tage");
TeacherEntity teacher=new TeacherEntity();
teacher.setTid(new BigDecimal(tid));
teacher.setTname(tname);
teacher.setTage(new BigDecimal(tage));

boolean f=SchoolManager.addNewTeacherInfo(teacher);
if(f){
response.sendRedirect("InforShow/teacherManager.jsp");
}else{
response.sendRedirect("InforManager/addTeacher.jsp?add=0");
}

}
private void delTeacherInfoById(HttpServletRequest request, HttpServletResponse response) throws IOException{
String tid=request.getParameter("tid");
boolean f=SchoolManager.delTeacherInfoById(tid);
if(f){
System.out.println("OK");
response.sendRedirect("InforShow/teacherManager.jsp");
}
}
private void updTeacherInfo(HttpServletRequest request, HttpServletResponse response) throws IOException{

String tid=request.getParameter("tid");
String tname=request.getParameter("tname");
String tage=request.getParameter("tage");
TeacherEntity teacher=new TeacherEntity();
teacher.setTid(new BigDecimal(tid));
teacher.setTname(tname);
teacher.setTage(new BigDecimal(tage));

boolean f=SchoolManager.updTeacherInfo(teacher);
if(f){
response.sendRedirect("InforShow/teacherManager.jsp");
}
}
}


 

二、类写完之后,我们必须要在web.xml中进行配置,详细配置信息如下:

   <servlet>

   <servlet-name>tservlet</servlet-name>//名字自定义起,但必须要和下面的<servlet-mapping>中name一致。

   <servlet-class>com.jsp.servlet.Teacher_Servlet</servlet-class>//servlet类的路径。这里是供服务器所用

  </servlet>

  <servlet-mapping>

  <servlet-name>tservlet</servlet-name>

  <url-pattern>/teacherservlet</url-pattern>//这里时供客户端所用。其中/表示的就是在webRoot根目录下后面是我们在调的时候用的地址。

  </servlet-mapping>

 

三、页面中的请求(添加教师信息),注意的是action的位置teacherservlet,提交方式为post。为了给servlet指定执行何种方法,我们加了一个隐藏域

<input type="hidden" name="caozuo" value="add">,告诉servlet这个请求执行的是添加方法,详细代码如下:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>
<base href="<%=basePath%>">

<title>My JSP 'addTeacher.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<link rel="stylesheet" type="text/css" href="WEB-CSS/styles.css">

<script type="text/javascript" src="WEB-JS/sys.js"></script>

</head>
<%
String add=request.getParameter("add");
if(add!=null){%>
<script type="text/javascript">
window.alert('添加失败,请重新操作!');
</script>
<%} %>
<body>
<div style="text-align: center;font-size: 20px;color: #ee99ff">

添加教师信息
</div>
<hr/>
<div style="width: 500px;padding-left: 120px" align="center">
<form action="teacherservlet" method="post" onsubmit="return sub(this)">
<div style="float:left">编        号:</div>
<input type="text" name="tid" title="教师ID" style="float: left;" >
<div divid="tid" ></div>
<br/>
<div style="float:left">姓        名:</div>
<input type="text" name="tname" title="教师姓名" style="float:left">
<div divid="tname" ></div>
<br/>
<div style="float: left">年        龄:</div>
<input type="text" name="tage" title="教师年龄" style="float:left">
<div divid="tage"></div>
<br/>
<input type="hidden" name="caozuo" value="add">
<div style="padding-right: 100px;">
<input type="submit" value="确认添加" >         
<input type="reset" value="取消操作">
</div>

</form>
</div>
<hr/>
</body>
<script type="text/javascript">
start_run();
</script>
</html>


 

修改和删除也是一样的,只要我们给servlet传入一个操作指令,它就会根据你给定的value进行对应的操作。利用servlet我们不用对每一个请求都建一个.jsp文件进行操作。而是一个表对应一个,对其进行响应。今天刚学,有不足的地方希望大家多多指教我,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐