实例:
1,作为转发器的servlet
package com.ogi.util;import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ControlDriver extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void destroy(){
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
String action = (String)request.getParameter("action");
String dispatch = "/administration/";
System.out.println(action);
if(action == null || action.equals("adminHomepage") || action.equals("")){ //all - finished
dispatch += "adminHomepage";
}else if(action.equals("userAdmin")){ //all - finished
dispatch += "userAdmin";
}else if(action.equals("conditionAdmin")){ //all - finished
dispatch += "conditionAdmin";
}else if(action.equals("resourceAdmin")){ //all - finished
dispatch += "resourceAdmin";
}else if(action.equals("companyAdmin")){ //all - finished
dispatch += "companyAdmin";
}else if(action.equals("listProduct")){ //all - finished
dispatch += "listProduct";
}else if(action.equals("productAdmin")){ //all - finished
dispatch += "editParts?action=list";
}else if(action.equals("partAdmin")){ //all - finished
dispatch += "groupAdmin?action=list";
}else if(action.equals("productPropertyAdmin")){ //start - can not update
dispatch += "productPropertyAdmin?err=none";
}else if(action.equals("partCSV")){ //finished
dispatch += "partCSV.jsp";
}else if(action.equals("productCSV")){ //not start
dispatch += "productCSV.jsp";
}else if(action.equals("propertyCSV")){ //not start
dispatch += "spectCSV.jsp";
}else{
dispatch += "error.jsp";
}
RequestDispatcher dispatcher = request.getRequestDispatcher(dispatch);
dispatcher.forward(request,response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doGet(request, response);
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
}2,处理逻辑的servlet:
package com.ogi.admin.companyadmin;import java.sql.*;
import java.io.*;import javax.servlet.*;
import javax.servlet.http.*;
import com.ogi.database.*;
import com.ogi.util.*;
import com.ogi.user.*;public class InsertCompany extends HttpServlet{
DAO dao = new DAO();
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
AllResource ar = new AllResource();
String companyID = request.getParameter("companyID");
String companyNameJP = request.getParameter("companyNameJP");
String companyNameEN = request.getParameter("companyNameEN");
if(this.haveID(companyID)){
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println(ErrInfo.getErrPage(ar.getERROR_SAME_MAKER()));
}else{
String sql = "insert into TabCompany values(?,?,?)";
String dispatch = "/administration/Control?action=companyAdmin";
try{
conn = dao.getConnection();
pstm = conn.prepareStatement(sql);
pstm.setString(1,companyID);
pstm.setString(2,companyNameJP);
pstm.setString(3,companyNameEN);
pstm.executeUpdate();
dao.closePstm(pstm);
dao.closeConn(conn);
RequestDispatcher dispatcher = request.getRequestDispatcher(dispatch);
dispatcher.forward(request,response);
}catch(Exception e){
e.printStackTrace();
}
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doGet(request,response);
}
public boolean haveID(String id){
boolean result = true;
try{
String sql = "select companyID from TabCompany where companyID = ?";
conn = dao.getConnection();
pstm = conn.prepareStatement(sql);
pstm.setString(1,id);
rs = pstm.executeQuery();
if(rs.next()){result = true;}
else{result = false;}
}catch(Exception e){
e.printStackTrace();
}finally{
dao.closeRs(rs);
dao.closePstm(pstm);
dao.closeConn(conn);
}
return result;
}
}
1,作为转发器的servlet
package com.ogi.util;import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ControlDriver extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void destroy(){
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
String action = (String)request.getParameter("action");
String dispatch = "/administration/";
System.out.println(action);
if(action == null || action.equals("adminHomepage") || action.equals("")){ //all - finished
dispatch += "adminHomepage";
}else if(action.equals("userAdmin")){ //all - finished
dispatch += "userAdmin";
}else if(action.equals("conditionAdmin")){ //all - finished
dispatch += "conditionAdmin";
}else if(action.equals("resourceAdmin")){ //all - finished
dispatch += "resourceAdmin";
}else if(action.equals("companyAdmin")){ //all - finished
dispatch += "companyAdmin";
}else if(action.equals("listProduct")){ //all - finished
dispatch += "listProduct";
}else if(action.equals("productAdmin")){ //all - finished
dispatch += "editParts?action=list";
}else if(action.equals("partAdmin")){ //all - finished
dispatch += "groupAdmin?action=list";
}else if(action.equals("productPropertyAdmin")){ //start - can not update
dispatch += "productPropertyAdmin?err=none";
}else if(action.equals("partCSV")){ //finished
dispatch += "partCSV.jsp";
}else if(action.equals("productCSV")){ //not start
dispatch += "productCSV.jsp";
}else if(action.equals("propertyCSV")){ //not start
dispatch += "spectCSV.jsp";
}else{
dispatch += "error.jsp";
}
RequestDispatcher dispatcher = request.getRequestDispatcher(dispatch);
dispatcher.forward(request,response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doGet(request, response);
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
}2,处理逻辑的servlet:
package com.ogi.admin.companyadmin;import java.sql.*;
import java.io.*;import javax.servlet.*;
import javax.servlet.http.*;
import com.ogi.database.*;
import com.ogi.util.*;
import com.ogi.user.*;public class InsertCompany extends HttpServlet{
DAO dao = new DAO();
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
public void init(ServletConfig config) throws ServletException{
super.init(config);
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
AllResource ar = new AllResource();
String companyID = request.getParameter("companyID");
String companyNameJP = request.getParameter("companyNameJP");
String companyNameEN = request.getParameter("companyNameEN");
if(this.haveID(companyID)){
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println(ErrInfo.getErrPage(ar.getERROR_SAME_MAKER()));
}else{
String sql = "insert into TabCompany values(?,?,?)";
String dispatch = "/administration/Control?action=companyAdmin";
try{
conn = dao.getConnection();
pstm = conn.prepareStatement(sql);
pstm.setString(1,companyID);
pstm.setString(2,companyNameJP);
pstm.setString(3,companyNameEN);
pstm.executeUpdate();
dao.closePstm(pstm);
dao.closeConn(conn);
RequestDispatcher dispatcher = request.getRequestDispatcher(dispatch);
dispatcher.forward(request,response);
}catch(Exception e){
e.printStackTrace();
}
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doGet(request,response);
}
public boolean haveID(String id){
boolean result = true;
try{
String sql = "select companyID from TabCompany where companyID = ?";
conn = dao.getConnection();
pstm = conn.prepareStatement(sql);
pstm.setString(1,id);
rs = pstm.executeQuery();
if(rs.next()){result = true;}
else{result = false;}
}catch(Exception e){
e.printStackTrace();
}finally{
dao.closeRs(rs);
dao.closePstm(pstm);
dao.closeConn(conn);
}
return result;
}
}
解决方案 »
- servlet
- java web中如何只选择目录而不选择文件?
- LAN轮询时间问题,(初级问题),在线等。
- 这几天问的大家咱不会,郁闷,帮帮我吧,String content = "<table><tr><td>hello</td><td>world</td></tr></table>" 用jdom解析,
- error infomation:java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
- 为什么我的Servlet运行不了
- 怎么用JB运行struts的例子程序,比如blankproject
- 使用连接池时出现load jdbc driver class 'null'
- 几个名词定义!
- spring整合quartz定时任务报错,请大神们解救
- 怎樣把string變成int?
- 没事做的时候,不知道干嘛,散分~~~~~~
另外:根据MVC三层模式,
servlet做Control, jsp来做view,这样层次更清楚,
如果用jsp来写servlet这样不清晰,而且你不觉得这样编写程序时都很麻烦?现在的ide对jsp语法的检查没纯java文件好
如:<html>
servlet中要写为out.println("<html>");
试问如果这样写的话是不是很降低了很多我们编程的速度,和编译器用来编译的那点时间相比,这个时间可是浪费得太多了
servlet最主要是用途是作为后端的处理,这样可以极大的降低页面的代码,使得页面变的代码精简
使用servlet的基本流程如下:
·客户端(很可能是Web浏览器)通过HTTP提出请求。
·Web服务器接收该请求并将其发给servlet。如果这个servlet尚未被加载,Web服务器将把它加载到Java虚拟机并且执行它。
·servlet将接收该HTTP请求并执行某种处理。
·servlet将向Web服务器返回应答。
·Web服务器将从servlet收到的应答发送给客户端。
由于servlet是在服务器上执行,通常与applet相关的安全性的问题并不需实现。servlet使相当数量的不可能或者至少是很难由applet实现的功能的实现成为可能。与现有系统通过CORBA,RMI,socket和本地(native)调用的通信就是其中的一些例子。另外,一定要注意:Web浏览器并不直接和servlet通信,servlet是由Web服务器加载和执行的。这意味着如果你的Web服务器有防火墙保护,那么你的servlet也将得到防火墙的保护。 最起码,servlet可以很好地替代公共网关接口(Common Gateway Interface,CGI)脚本。通常CGI脚本是用Perl或者C语言编写的,它们总是和特定的服务器平台紧密相关。而servlet是用Java编写的,所以它们一开始就是平台无关的。这样,Java编写一次就可以在任何平台运行(write once,run anywhere)的承诺就同样可以在服务器上实现了。servlet还有一些CGI脚本所不具备的独特优点:
■servlet是持久的。servlet只需Web服务器加载一次,而且可以在不同请求之间保持服务(例如一次数据库连接)。与之相反,CGI脚本是短暂的、瞬态的。每一次对CGI脚本的请求,都会使Web服务器加载并执行该脚本。一旦这个CGI脚本运行结束,它就会被从内存中清除,然后将结果返回到客户端。CGI脚本的每一次使用,都会造成程序初始化过程(例如连接数据库)的重复执行。
■servlet是与平台无关的。如前所述,servlet是用Java编写的,它自然也继承了Java的平台无关性。
■servlet是可扩展的。由于servlet是用Java编写的,它就具备了Java所能带来的所有优点。Java是健壮的、面向对象的编程语言,它很容易扩展以适应你的需求。servlet自然也具备了这些特征。
■servlet是安全的。从外界调用一个servlet的惟一方法就是通过Web服务器。这提供了高水平的安全性保障,尤其是在你的Web服务器有防火墙保护的时候。
■setvlet可以在多种多样的客户机上使用。由于servlet是用Java编写的,所以你可以很方便地在HTML中使用它们,就像你使用applet一样。在本书中您将看到这一点。
使用servlet的方式多得超出你的想象。如果考虑到你在服务器上所能访问到的所有服务(诸如数据库服务器和老的系统),使用servlet的方式实际上可能是无限的。