Servlet是J2EE的重要部分,先于JSP出现的 ,所以学好Servlet 是 学好J2EE的重要前提。
Servlet就是服务器端小程序。
下面是Servlet连接数据库的小例子:
一.登陆页代码:
/**
* AWT Sample application
*
* @author
* @version 1.00 12/10/21
*/
/**
* AWT Sample application
*
* @author
* @version 1.00 12/10/21
*/
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
public class Hello extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try
{
PrintWriter pw=res.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<title>test</title>");
pw.println("</head>");
pw.println("<body>");
pw.println("<form action=login method=post>");
pw.println("<h1>user+password</h1>");
pw.println("<input type=text name=username />");
pw.println("<input type=text name=password />");
pw.println("<input type=submit value=Submit />");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
中间处理程序页:
/**
* AWT Sample application
*
* @author 徐研
* @version 1.00 12/10/21
*/
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class LoginCL extends HttpServlet{
//req用于向浏览器请求信息
//res用于向浏览器返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res) {
Connection con=null;
Statement sm=null;
ResultSet rs=null;
try
{
String username=req.getParameter("username");
String mima=req.getParameter("password");
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo","sa","1234");
sm=con.createStatement();
rs=sm.executeQuery("select userpswd from userinfo where username='"+username+"' ");
if(rs.next()) //此处说明用户存在
{
String pass=rs.getString(1);
if(pass.equals(mima)) //密码相符
{
res.sendRedirect("welcome?posturl="+username);
}
}
else
{
res.sendRedirect("xuyan"); //用户名不存在
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try{
if(rs!=null)
{ rs.close();
}
if(sm!=null){
sm.close();
}
if(con!=null){
con.close();
}
}
catch(SQLException eexx)
{
eexx.printStackTrace();
}
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res) {
this.doGet(req,res);
}
}
登陆验证正确后显示页:
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
public class welcome extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try
{
String jieshou=req.getParameter("posturl");
PrintWriter pw=res.getWriter();
pw.println("Welcome "+jieshou);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
连接SQL2005需在TomCat中 加入jdbc包