《Servlet典型应用.doc》由会员分享,可在线阅读,更多相关《Servlet典型应用.doc(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、!-Servlet的典型应用在Servlet中实现页面转发创建index.jsp页面在Servlet中实现页面转发的操作利用HttpServletRequest类的getRequestDispatcher()方法进行页面转发 接着编写forwardservlet类,实现页面转发package com;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class ForwardServlet extends HttpServlet public void do
2、Get(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException RequestDispatcher requestDispatcher = request.getRequestDispatcher( forward.jsp); requestDispatcher.forward(request, response); public void doPost(HttpServletRequest request, HttpServletResponse respon
3、se) throws ServletException, IOException doGet(request, response); 之后创建forward.jsp页面,即转发到的页面在Servlet中实现页面转发的操作页面转发成功最后配置xml文件 web forwardservlet com.ForwardServlet forwardservlet /forwardservlet 本例将把数据库驱动,URL地址,用户名和密码写入到web.xml文件中,通过初始化参数获取web.xml文件中的信息,实现数据库查询功能。创建名称为InitServlet.java的类文件package com
4、;import java.io.IOException;import java.io.PrintWriter;import java.sql.*;import javax.servlet.ServletException;import javax.servlet.http.*;public class InitServlet extends HttpServlet private String driver = ;private String URL = ;private String username = ;private String password = ;public void ini
5、t() throws ServletException driver = getInitParameter(driver);URL = getInitParameter(URL);username = getInitParameter(username);password = getInitParameter(password);public Connection getConnection() Connection con = null;try Class.forName(driver);con = DriverManager.getConnection(URL, username, pas
6、sword);System.out.print(2); catch (Exception e) return con;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html;charset=gb2312);PrintWriter out = response.getWriter();Connection con = this.getConnection();tr
7、y Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery(select * from tb_product);while (rs.next() out.print(rs.getString(id);out.print( );out.print(rs.getString(productName);out.print( );out.print(rs.getString(productNumber);out.print(
8、); catch (SQLException e) e.printStackTrace();public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doGet(request, response);在web.xml文件中,配置上面的Servlet文件 Simple Servlet Servlet InitServlet com.InitServlet driver com.microsoft.jdbc.sqlserver.SQ
9、LServerDriver URL jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=db_JSDQ07 username sa password InitServlet /initServlet Servlet处理表单数据本例将使用Servlet来处理用户提交的表单数据,然后将数据保存到数据库中在首先创建一个表单,实现用户注册用户注册bodymargin: 0px;font-size: 12px;.boxborder: 1px solid #D1DEB2; width: 150px; height: 20px;.div1backgro
10、und-image: url(images/bg.jpg);height: 600px;width: 803px;padding-left:20px;padding-top:220px;text-align:left; function reg(form) if(form.username.value = ) alert(用户不能为空!); return false; if(form.password.value = ) alert(密码不能为空!); return false; if(form.repassword.value = ) alert(确认密码不能为空!); return fal
11、se; if(form.password.value != form.repassword.value) alert(两次密码输入不一致!); return false; if(form.question.value = ) alert(密码找回问题不能为空!); return false; if(form.answer.value = ) alert(密码找回答案不能为空!); return false; if(form.email.value = ) alert(电子邮箱不能为空!); return false; 用户名:密 码:确认密码: 性 别:男女密码找回问题:密码找回答案:邮 箱:
12、编写Srevlet类,接收上一页面的注册信息,并把信息保存到数据库中package com.lyq;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.Htt
13、pServletRequest;import javax.servlet.http.HttpServletResponse;public class RegServlet extends HttpServlet private static final long serialVersionUID = 1789481329876401944L;/ 数据库连接Connectionprivate Connection conn;/ 初始化方法public void init() throws ServletException super.init();try / 加载驱动Class.forName(
14、com.mysql.jdbc.Driver);/ 数据库连接urlString url = jdbc:mysql:/localhost:3306/db_database04;/ 获取数据库连接conn = DriverManager.getConnection(url, root, 111); catch (Exception e) e.printStackTrace();/ doPost()方法处理注册请求public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletExce
15、ption, IOException / 设置request与response的编码response.setContentType(text/html);request.setCharacterEncoding(GBK);response.setCharacterEncoding(GBK);/ 获取表单中属性值String username = request.getParameter(username);String password = request.getParameter(password);String sex = request.getParameter(sex);String
16、question = request.getParameter(question);String answer = request.getParameter(answer);String email = request.getParameter(email);/ 判断数据库中否连接成功if (conn != null) try / 插入注册信息的SQL语句(使用?占位符)String sql = insert into tb_user(username,password,sex,question,answer,email) + values(?,?,?,?,?,?);/ 创建PreparedS
17、tatement对象PreparedStatement ps = conn.prepareStatement(sql);/ 对SQL语句中的参数动态赋值ps.setString(1, username);ps.setString(2, password);ps.setString(3, sex);ps.setString(4, question);ps.setString(5, answer);ps.setString(6, email);/ 执行更新操作ps.executeUpdate();/ 获取PrintWriter对象PrintWriter out = response.getWriter();/ 输出注册结果信息out.print();out.print(username + 注册成功!);out.print();out.flush();out.close(); catch (Exception e) e.printStackTrace(); else / 发送数据库连接错误提示信息response.sendError(500, 数据库连接错误!);之后配置xml文件 RegServlet com.lyq.RegServlet RegServlet /RegServlet index.jsp