jsp/servlet/javaBean三层架构小示例(1)

时间:2021-02-17 19:05:17
   在java代码中写文档(html),这是servlet;在文档中写java代码,这是jsp;而如何将两者分开,这就是MVC模式了。虽然是java的一小步,却是程序员们生活的一大步哦。
   下面给出一个简单的用户登陆功能,采用jsp/servelt/javaBean来实现MVC模式(即经典的模式2)。

模型层:
jsp/servlet/javaBean三层架构小示例(1)package  com.vitamin.DataAccess;
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
import  java.sql. * ;
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)
public   class  DBbase  {
jsp/servlet/javaBean三层架构小示例(1)        String sDBDriver 
= "sun.jdbc.odbc.JdbcOdbcDriver";
jsp/servlet/javaBean三层架构小示例(1)        String sConnstr 
= "jdbc:odbc:myDB";
jsp/servlet/javaBean三层架构小示例(1)        Connection connect 
= null;
jsp/servlet/javaBean三层架构小示例(1)        ResultSet rs 
= null;
jsp/servlet/javaBean三层架构小示例(1)        Statement stmt 
= null;
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)        
public DBbase()
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)                
try
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)                
{
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)                        Class.forName(sDBDriver);
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)                }

jsp/servlet/javaBean三层架构小示例(1)                
catch(ClassNotFoundException ex)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)                
{
jsp/servlet/javaBean三层架构小示例(1)                        System.err.println(ex.getMessage());
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)                }

jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)        
public ResultSet executeQuery(String sql)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)                
try
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)                
{
jsp/servlet/javaBean三层架构小示例(1)                        
this.connect = DriverManager.getConnection(sConnstr);
jsp/servlet/javaBean三层架构小示例(1)                        
this.stmt = this.connect.createStatement();
jsp/servlet/javaBean三层架构小示例(1)                        rs 
= stmt.executeQuery(sql);
jsp/servlet/javaBean三层架构小示例(1)                }

jsp/servlet/javaBean三层架构小示例(1)                
catch(SQLException ex)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)                
{
jsp/servlet/javaBean三层架构小示例(1)                        System.err.println(ex.getMessage());
jsp/servlet/javaBean三层架构小示例(1)                }

jsp/servlet/javaBean三层架构小示例(1)                
return rs;
jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)        
public int executeUpdate(String sql)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)                
int result = 0;
jsp/servlet/javaBean三层架构小示例(1)                
try
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)                
{
jsp/servlet/javaBean三层架构小示例(1)                        
this.connect = DriverManager.getConnection(sConnstr);
jsp/servlet/javaBean三层架构小示例(1)                        
this.stmt = this.connect.createStatement();
jsp/servlet/javaBean三层架构小示例(1)                        result 
= stmt.executeUpdate(sql);
jsp/servlet/javaBean三层架构小示例(1)                }

jsp/servlet/javaBean三层架构小示例(1)                
catch(SQLException ex)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)                
{
jsp/servlet/javaBean三层架构小示例(1)                        System.err.println(ex.getMessage());
jsp/servlet/javaBean三层架构小示例(1)                }

jsp/servlet/javaBean三层架构小示例(1)                
return result;
jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)}

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)

控制层:
jsp/servlet/javaBean三层架构小示例(1)package  com.vitamin.servlet;
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
import  java.io.IOException;
jsp/servlet/javaBean三层架构小示例(1)
import  java.io.PrintWriter;
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
import  javax.servlet.ServletException;
jsp/servlet/javaBean三层架构小示例(1)
import  javax.servlet.http.HttpServlet;
jsp/servlet/javaBean三层架构小示例(1)
import  javax.servlet.http.HttpServletRequest;
jsp/servlet/javaBean三层架构小示例(1)
import  javax.servlet.http.HttpServletResponse;
jsp/servlet/javaBean三层架构小示例(1)
import  com.vitamin.DataAccess. * ;
jsp/servlet/javaBean三层架构小示例(1)
import  java.sql. * ;
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)
public   class  Hello  extends  HttpServlet  {
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
/**
jsp/servlet/javaBean三层架构小示例(1)     * Constructor of the object.
jsp/servlet/javaBean三层架构小示例(1)     
*/

jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
public Hello() {
jsp/servlet/javaBean三层架构小示例(1)        
super();
jsp/servlet/javaBean三层架构小示例(1)    }

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
/**
jsp/servlet/javaBean三层架构小示例(1)     * Destruction of the servlet. <br>
jsp/servlet/javaBean三层架构小示例(1)     
*/

jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
public void destroy() {
jsp/servlet/javaBean三层架构小示例(1)        
super.destroy(); // Just puts "destroy" string in log
jsp/servlet/javaBean三层架构小示例(1)        
// Put your code here
jsp/servlet/javaBean三层架构小示例(1)
    }

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
/**
jsp/servlet/javaBean三层架构小示例(1)     * The doGet method of the servlet. <br>
jsp/servlet/javaBean三层架构小示例(1)     *
jsp/servlet/javaBean三层架构小示例(1)     * This method is called when a form has its tag value method equals to get.
jsp/servlet/javaBean三层架构小示例(1)     * 
jsp/servlet/javaBean三层架构小示例(1)     * 
@param request the request send by the client to the server
jsp/servlet/javaBean三层架构小示例(1)     * 
@param response the response send by the server to the client
jsp/servlet/javaBean三层架构小示例(1)     * 
@throws ServletException if an error occurred
jsp/servlet/javaBean三层架构小示例(1)     * 
@throws IOException if an error occurred
jsp/servlet/javaBean三层架构小示例(1)     
*/

jsp/servlet/javaBean三层架构小示例(1)    
public void doGet(HttpServletRequest request, HttpServletResponse response)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)            
throws ServletException, IOException {
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)        response.setContentType(
"text/html");
jsp/servlet/javaBean三层架构小示例(1)        
jsp/servlet/javaBean三层架构小示例(1)        PrintWriter out 
= response.getWriter();
jsp/servlet/javaBean三层架构小示例(1)        out.println(
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
jsp/servlet/javaBean三层架构小示例(1)
        out.println("<HTML>");
jsp/servlet/javaBean三层架构小示例(1)        out.println(
"  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
jsp/servlet/javaBean三层架构小示例(1)        out.println(
"  <BODY>");
jsp/servlet/javaBean三层架构小示例(1)        out.print(
"    This is ");
jsp/servlet/javaBean三层架构小示例(1)        out.print(
this.getClass());
jsp/servlet/javaBean三层架构小示例(1)        out.println(
", using the GET method");
jsp/servlet/javaBean三层架构小示例(1)        out.println(
"  </BODY>");
jsp/servlet/javaBean三层架构小示例(1)        out.println(
"</HTML>");
jsp/servlet/javaBean三层架构小示例(1)        out.flush();
jsp/servlet/javaBean三层架构小示例(1)        out.close();
jsp/servlet/javaBean三层架构小示例(1)    }

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
/**
jsp/servlet/javaBean三层架构小示例(1)     * The doPost method of the servlet. <br>
jsp/servlet/javaBean三层架构小示例(1)     *
jsp/servlet/javaBean三层架构小示例(1)     * This method is called when a form has its tag value method equals to post.
jsp/servlet/javaBean三层架构小示例(1)     * 
jsp/servlet/javaBean三层架构小示例(1)     * 
@param request the request send by the client to the server
jsp/servlet/javaBean三层架构小示例(1)     * 
@param response the response send by the server to the client
jsp/servlet/javaBean三层架构小示例(1)     * 
@throws ServletException if an error occurred
jsp/servlet/javaBean三层架构小示例(1)     * 
@throws IOException if an error occurred
jsp/servlet/javaBean三层架构小示例(1)     
*/

jsp/servlet/javaBean三层架构小示例(1)    
public void doPost(HttpServletRequest request, HttpServletResponse response)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)            
throws ServletException, IOException {
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)        response.setContentType(
"text/html");
jsp/servlet/javaBean三层架构小示例(1)        response.setCharacterEncoding(
"GBK");
jsp/servlet/javaBean三层架构小示例(1)        PrintWriter out 
= response.getWriter();
jsp/servlet/javaBean三层架构小示例(1)        
jsp/servlet/javaBean三层架构小示例(1)        request.setCharacterEncoding(
"GBK");
jsp/servlet/javaBean三层架构小示例(1)        String name 
= request.getParameter("name");
jsp/servlet/javaBean三层架构小示例(1)        String pwd 
= request.getParameter("password");
jsp/servlet/javaBean三层架构小示例(1)        DBbase myDb 
= new DBbase();
jsp/servlet/javaBean三层架构小示例(1)        ResultSet rs 
= null;
jsp/servlet/javaBean三层架构小示例(1)        
int result = 0;
jsp/servlet/javaBean三层架构小示例(1)        
jsp/servlet/javaBean三层架构小示例(1)        String sql 
= "select count(*) as count from users where username = '"+name+"' and password = '"+pwd+"'";
jsp/servlet/javaBean三层架构小示例(1)        
jsp/servlet/javaBean三层架构小示例(1)        
try
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)             rs 
= myDb.executeQuery(sql);
jsp/servlet/javaBean三层架构小示例(1)             
if(rs.next())
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)            
{
jsp/servlet/javaBean三层架构小示例(1)                result 
= rs.getInt("count");
jsp/servlet/javaBean三层架构小示例(1)            }

jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)        
catch(SQLException ex)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)            ex.printStackTrace();
jsp/servlet/javaBean三层架构小示例(1)            
jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)        
jsp/servlet/javaBean三层架构小示例(1)        
if(result>0)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)            out.println(
"合法用户");
jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)        
else
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)        
{
jsp/servlet/javaBean三层架构小示例(1)            out.println(
"非法用户");
jsp/servlet/javaBean三层架构小示例(1)        }

jsp/servlet/javaBean三层架构小示例(1)        
jsp/servlet/javaBean三层架构小示例(1)    }

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
/**
jsp/servlet/javaBean三层架构小示例(1)     * Initialization of the servlet. <br>
jsp/servlet/javaBean三层架构小示例(1)     *
jsp/servlet/javaBean三层架构小示例(1)     * 
@throws ServletException if an error occure
jsp/servlet/javaBean三层架构小示例(1)     
*/

jsp/servlet/javaBean三层架构小示例(1)jsp/servlet/javaBean三层架构小示例(1)    
public void init() throws ServletException {
jsp/servlet/javaBean三层架构小示例(1)        
// Put your code here
jsp/servlet/javaBean三层架构小示例(1)
    }

jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)}

jsp/servlet/javaBean三层架构小示例(1)

Web表示层:
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
<% @ page language = " java "   import = " java.util.* "  pageEncoding = " GBK " %>
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
<%
jsp/servlet/javaBean三层架构小示例(1)String path 
=  request.getContextPath();
jsp/servlet/javaBean三层架构小示例(1)String basePath 
=  request.getScheme() + " :// " + request.getServerName() + " : " + request.getServerPort() + path + " / " ;
jsp/servlet/javaBean三层架构小示例(1)
%>
jsp/servlet/javaBean三层架构小示例(1)
jsp/servlet/javaBean三层架构小示例(1)
<! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.01 Transitional//EN " >
jsp/servlet/javaBean三层架构小示例(1)
< html >
jsp/servlet/javaBean三层架构小示例(1)  
< head >
jsp/servlet/javaBean三层架构小示例(1)    
< base href = " <%=basePath%> " >
jsp/servlet/javaBean三层架构小示例(1)    
jsp/servlet/javaBean三层架构小示例(1)    
< title > My JSP  ' index.jsp '  starting page </ title >
jsp/servlet/javaBean三层架构小示例(1)    
jsp/servlet/javaBean三层架构小示例(1)    
< meta http - equiv = " pragma "  content = " no-cache " >
jsp/servlet/javaBean三层架构小示例(1)    
< meta http - equiv = " cache-control "  content = " no-cache " >
jsp/servlet/javaBean三层架构小示例(1)    
< meta http - equiv = " expires "  content = " 0 " >
jsp/servlet/javaBean三层架构小示例(1)    
< meta http - equiv = " keywords "  content = " keyword1,keyword2,keyword3 " >
jsp/servlet/javaBean三层架构小示例(1)    
< meta http - equiv = " description "  content = " This is my page " >
jsp/servlet/javaBean三层架构小示例(1)    
jsp/servlet/javaBean三层架构小示例(1)    
<!--
jsp/servlet/javaBean三层架构小示例(1)    
< link rel = " stylesheet "  type = " text/css "  href = " styles.css " >
jsp/servlet/javaBean三层架构小示例(1)    
-->
jsp/servlet/javaBean三层架构小示例(1)  
</ head >
jsp/servlet/javaBean三层架构小示例(1)  
jsp/servlet/javaBean三层架构小示例(1)  
< body >
jsp/servlet/javaBean三层架构小示例(1)        
< FORM name = " form1 "  method = " POST "  action = " /servletTest/servlet/Hello " >
jsp/servlet/javaBean三层架构小示例(1)            
< P >    & nbsp; 用户名: & nbsp;   & nbsp;  < INPUT type = " text "  name = " name "  maxlength = " 20 "   /></ P >
jsp/servlet/javaBean三层架构小示例(1)            
< P >       & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;密码       & nbsp; < INPUT type = " password "  name = " password "  maxlength = " 20 "   />   </ P >
jsp/servlet/javaBean三层架构小示例(1)            
< P >
jsp/servlet/javaBean三层架构小示例(1)                 
& nbsp;
jsp/servlet/javaBean三层架构小示例(1)            
</ P >
jsp/servlet/javaBean三层架构小示例(1)            
< P >                & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;   & nbsp; < INPUT type = " Submit "  name = " button4 "  value = " 确定 "   />   & nbsp;  & nbsp; < INPUT type = " Reset "  name = " button5 "  value = " 重置 " ></ P >
jsp/servlet/javaBean三层架构小示例(1)            
< P >
jsp/servlet/javaBean三层架构小示例(1)                 
& nbsp;
jsp/servlet/javaBean三层架构小示例(1)            
</ P >
jsp/servlet/javaBean三层架构小示例(1)            
< P >
jsp/servlet/javaBean三层架构小示例(1)                 
& nbsp;
jsp/servlet/javaBean三层架构小示例(1)            
</ P >
jsp/servlet/javaBean三层架构小示例(1)        
</ FORM >
jsp/servlet/javaBean三层架构小示例(1)    
</ body >
jsp/servlet/javaBean三层架构小示例(1)
</ html >
jsp/servlet/javaBean三层架构小示例(1)

看过一篇资料说,servlet能够与多个客户机连接,接受多个客户的输入,并将结果广播到多个客户机上,例如可以作为一个多人参与的游戏服务器,这点倒是让我挺吃惊的,不知道如何能够实现哪?如果是真的,那servlet是如何得知客户的详细信息的?难道可以象socket那样?不解。。。