700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > JSP与Servlet实现用户注册

JSP与Servlet实现用户注册

时间:2024-06-28 14:13:32

相关推荐

JSP与Servlet实现用户注册

JSP最令我痴迷的地方在于其神奇的Servlet映射,映射一直是现在网站开发,MVC ,SSH框架都必备的最重要的基础技能。

我们今天就用用户注册的实例来讲解Servlet的用法

下面是我提前建好的数据库:

首先我们新建一个Dynamic Web Project(动态网页)

我们在src文件下新建一个包,并创建一个servlet:RegServlet

一个新的servlet具有以下的基础代码:

首先我们在RegServlrt类中重写init()方法和doPost()方法。在基础代码中是没有给出init()方法的,需要我们自己去写。

首先看看我们引用的jar包

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.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;

首先在init()方法中获取数据库连接。

//数据库连接Connectionprivate Connection conn; public void init()throws ServletException{super.init();try{//加载驱动Class.forName("com.mysql.jdbc.Driver");//设置urlString url="jdbc:mysql://localhost:3306/MyBlog";//获取连接conn =DriverManager.getConnection(url, "root", ""); }catch(Exception e){e.printStackTrace();}}

其中驱动的jar包是需要自己下载的,我这里引用的是mysql.jar:

运行时可能提示一些小问题,tomcat找不到该驱动,解决办法就是将jar包复制粘贴到tomcat的lib中,就没事了。

接下来就是填充doPost代码:

//设置编码格式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 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(?,?,?,?,?,?)";//这里会有两类,一类是com.mysql.jdbc,一类是java.sql,没有本质区别,java.sql兼容性会更强。PreparedStatement ps=conn.prepareStatement(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("<h1 aling='center'>");out.print(username+"注册成功!");out.print("</h1>");out.flush();out.close();}catch(Exception e){e.printStackTrace();}}else{response.sendError(500,"数据库连接错误!");}}

接下里就是我们index.jsp页面的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><form action ="RegServlet" method="Post" onsubmit="return reg(this);"><table align="center" border="0", width="500"><tr><td align ="right" width ="30%">用户名:</td><td><input type ="text" name ="username" class="box"></td> </tr><tr><td align ="right" width ="30%">密码:</td><td><input type ="text" name ="password" class="box"></td> </tr><tr><td align ="right" width ="30%">性别:</td><td><input type ="radio" name ="sex" value="男" checked="checked">男<input type ="radio" name ="sex" value="女" >女</td> </tr><tr><td align ="right" width ="30%">密码找回问题:</td><td><input type ="text" name ="question" class="box"></td> </tr><tr><td align ="right" width ="30%">密码找回答案:</td><td><input type ="text" name ="answer" class="box"></td> </tr><tr><td align ="right" width ="30%">邮箱:</td><td><input type ="text" name ="email" class="box"></td> </tr><tr><td colspan="2" align="center" height="40"><input type ="submit" value="注册"><input type ="reset" value="重置"></td></tr> </body></html>

最重要的步骤,也是今天的重点:配置servlet

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>MyBlog</display-name><servlet><servlet-name>RegServlet</servlet-name><servlet-class>servlet.RegServlet</servlet-class></servlet><servlet-mapping><servlet-name>RegServlet</servlet-name><url-pattern>/RegServlet</url-pattern></servlet-mapping></web-app>

我们运行index.jsp

这里出现了乱码问题,是为什么呢,明明设置的字符集都是统一的。因为通过servlet处理form表单就会出现这样的情况。解决办法是加个过滤器。我后面会讲到。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。