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

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

模型层:
package  com.vitamin.DataAccess;


import  java.sql. * ;

public   class  DBbase  {
        String sDBDriver 
= "sun.jdbc.odbc.JdbcOdbcDriver";
        String sConnstr 
= "jdbc:odbc:myDB";
        Connection connect 
= null;
        ResultSet rs 
= null;
        Statement stmt 
= null;


        
public DBbase()
        
{

                
try
                
{

                        Class.forName(sDBDriver);

                }

                
catch(ClassNotFoundException ex)
                
{
                        System.err.println(ex.getMessage());

                }

        }

        
public ResultSet executeQuery(String sql)
        
{

                
try
                
{
                        
this.connect = DriverManager.getConnection(sConnstr);
                        
this.stmt = this.connect.createStatement();
                        rs 
= stmt.executeQuery(sql);
                }

                
catch(SQLException ex)
                
{
                        System.err.println(ex.getMessage());
                }

                
return rs;
        }

        
public int executeUpdate(String sql)
        
{
                
int result = 0;
                
try
                
{
                        
this.connect = DriverManager.getConnection(sConnstr);
                        
this.stmt = this.connect.createStatement();
                        result 
= stmt.executeUpdate(sql);
                }

                
catch(SQLException ex)
                
{
                        System.err.println(ex.getMessage());
                }

                
return result;
        }


}



控制层:
package  com.vitamin.servlet;

import  java.io.IOException;
import  java.io.PrintWriter;

import  javax.servlet.ServletException;
import  javax.servlet.http.HttpServlet;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;
import  com.vitamin.DataAccess. * ;
import  java.sql. * ;

public   class  Hello  extends  HttpServlet  {

    
/**
     * Constructor of the object.
     
*/

    
public Hello() {
        
super();
    }


    
/**
     * Destruction of the servlet. <br>
     
*/

    
public void destroy() {
        
super.destroy(); // Just puts "destroy" string in log
        
// Put your code here
    }


    
/**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * 
@param request the request send by the client to the server
     * 
@param response the response send by the server to the client
     * 
@throws ServletException if an error occurred
     * 
@throws IOException if an error occurred
     
*/

    
public void doGet(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {

        response.setContentType(
"text/html");
        
        PrintWriter out 
= response.getWriter();
        out.println(
"<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
        out.println("<HTML>");
        out.println(
"  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println(
"  <BODY>");
        out.print(
"    This is ");
        out.print(
this.getClass());
        out.println(
", using the GET method");
        out.println(
"  </BODY>");
        out.println(
"</HTML>");
        out.flush();
        out.close();
    }


    
/**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * 
@param request the request send by the client to the server
     * 
@param response the response send by the server to the client
     * 
@throws ServletException if an error occurred
     * 
@throws IOException if an error occurred
     
*/

    
public void doPost(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {

        response.setContentType(
"text/html");
        response.setCharacterEncoding(
"GBK");
        PrintWriter out 
= response.getWriter();
        
        request.setCharacterEncoding(
"GBK");
        String name 
= request.getParameter("name");
        String pwd 
= request.getParameter("password");
        DBbase myDb 
= new DBbase();
        ResultSet rs 
= null;
        
int result = 0;
        
        String sql 
= "select count(*) as count from users where username = '"+name+"' and password = '"+pwd+"'";
        
        
try
        
{
             rs 
= myDb.executeQuery(sql);
             
if(rs.next())
            
{
                result 
= rs.getInt("count");
            }

        }

        
catch(SQLException ex)
        
{
            ex.printStackTrace();
            
        }

        
        
if(result>0)
        
{
            out.println(
"合法用户");
        }

        
else
        
{
            out.println(
"非法用户");
        }

        
    }


    
/**
     * Initialization of the servlet. <br>
     *
     * 
@throws ServletException if an error occure
     
*/

    
public void init() throws ServletException {
        
// Put your code here
    }


}


Web表示层:

<% @ page language = " java "   import = " java.util.* "  pageEncoding = " GBK " %>

<%
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  ' index.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 = " styles.css " >
    
-->
  
</ head >
  
  
< body >
        
< FORM name = " form1 "  method = " POST "  action = " /servletTest/servlet/Hello " >
            
< P >    & nbsp; 用户名: & nbsp;   & nbsp;  < INPUT type = " text "  name = " name "  maxlength = " 20 "   /></ P >
            
< P >       & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;密码       & nbsp; < INPUT type = " password "  name = " password "  maxlength = " 20 "   />   </ P >
            
< P >
                 
& nbsp;
            
</ P >
            
< 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 >
            
< P >
                 
& nbsp;
            
</ P >
            
< P >
                 
& nbsp;
            
</ P >
        
</ FORM >
    
</ body >
</ html >

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值