JAVA EE---Servlet 学习第二天

同一用户的不同页面共享数据

1、cookie;2、sendRedirect跳转;3、session技术;4、隐藏表单提交(form)

sendRedirect 跳转 只能传递字符串,不能传递对象   welcome? userName = "admin" & password = "123456" 如果传递的是中文,还需要处理下

HttpServletResponse的sendRedirect  跳转是会发该URL到客户端,客户端再重定向把该URL请求发送到服务端来进行访问,重定向。

得到 session :HttpSession hs = request.getSession(true); 向session添加属性:hs.setAttribute(String name, Object val);

从session中得到某个属性 String name = hs.getAttribute(String name); 从session删除某个属性:hs.removeAttribute(String name);


学习中,一段代码,链接SERVER2000 过程中,死活是有问题,调试一天,总算解决,原来是MS 的数据库SERVER2000需要不定,哎,这鸡巴原因,真是无语了。顺便掌握了下netstat -an telnet 127.0.0.1 1433 等网络简单命令,也进一步提高了分析问题,解决问题的能力,也算有所收获。

package com.tooth;


import javax.servlet.http.*;
import java.io.*;
import java.sql.*;


public class LoginCheck extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res) {

 
   /*
   String username = req.getParameter("username");
String password = req.getParameter("password");
try {
        res.sendRedirect("Welcome?username=" + username + "&password=" + password);
   } catch(Exception e) {
e.printStackTrace();
}
*/

 

   /*
   Connection cn = null;
   Statement sm= null;
   ResultSet rs= null;
   String sql ="";
   
try {

String username = req.getParameter("username");
String password = req.getParameter("password");
sql = "select top 1 * from users where username='"+username+"'and passwd='"+password+"'";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");


try {

       PrintWriter pw = res.getWriter();
       pw.println("welcome!" + username + sql);

   } catch(Exception e) {
   e.printStackTrace();
   }



cn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xhpb","sa","sa");  







sm = cn.createStatement();
rs = sm.executeQuery(sql);




if(rs.next()) {


HttpSession hs = req.getSession(true);
hs.setAttribute("username",username);
hs.setAttribute("password",password);
hs.setMaxInactiveInterval(20);


res.sendRedirect("Welcome?username=" + username + " &password=" + password);
} else {
res.sendRedirect("Login");
}

} catch(Exception e) {
e.printStackTrace();
} finally {
   try {
     if(rs != null) {
      rs.close();
     }
    if(sm != null) {
      sm.close();
     }
      if(cn != null) {
      cn.close();
     }    
   
  } catch(Exception e) {
  e.printStackTrace();
  }
 

}
*/

  
String username = req.getParameter("username");
String password = req.getParameter("password");
String sql = "select top 1 * from users where username='"+username+"'and passwd='"+password+"'";
Statement sm= null;
       ResultSet rs= null;
       Connection conn = null;
try{
               DBConnectionManager dcm = new DBConnectionManager();
               conn = dcm.getConnection();
               sm = conn.createStatement();
               rs = sm.executeQuery(sql);
          if(rs.next()) {
     res.sendRedirect("Welcome?username=" + username + "&password=" + password);
      } else {
 res.sendRedirect("Login");
      } 
    
            } catch(Exception e){   
               e.printStackTrace();
            }



}

public void doPost(HttpServletRequest req, HttpServletResponse res) {
 this.doGet(req, res);
}

}


class DBConnectionManager {
    //SQLServer 
    private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    private String url = "jdbc:microsoft:sqlserver://192.168.1.110:1433;DatabaseName=xhpb";
    private String user = "sa";
    private String password = "sa";
    private static String message = "success!";
    public void setDriverName(String newDriverName) {
        driverName = newDriverName;
    }
    public String getDriverName() {
        return driverName;
    }
    
    public void setUrl(String newUrl) {
        url = newUrl;
    }
    public String getUrl() {
        return url;
    }
    public void setUser(String newUser) {
        user = newUser;
    }
    public String getUser() {
        return user;
    }
    public void setPassword(String newPassword) {
        password = newPassword;
    }
    public String getPassword() {
        return password;
    }
    public Connection getConnection() {
        try {
            Class.forName(driverName);
            return DriverManager.getConnection(url, user, password);
        } catch (Exception e) {
            System.out.println("lianjie cuowu!");
            message = "fail!";
            return null;
        }
    }
    
    public static void main(String[] args) {
   
    String sql = "select top 1 * from users where username='"+"admin"+"'and passwd='"+"123456"+"'";
Statement sm= null;
       ResultSet rs= null;
       Connection conn = null;
try{
               DBConnectionManager dcm = new DBConnectionManager();
               conn = dcm.getConnection();
               sm = conn.createStatement();
               rs = sm.executeQuery(sql);
      if(rs.next()) {
     System.out.println("1111!");
      } else {
System.out.println("l2222!"); 
  } 
}
catch(Exception e) {
      e.printStackTrace();
      } finally {
     try {
      if(rs != null) {
       rs.close();
      }
    if(sm != null) {
      sm.close();
      }
      if(conn != null) {
      conn.close();
      }    
   
   } catch(Exception e) {
  e.printStackTrace();
   }
  }
}
 
    }
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值