当前位置: 首页 > news >正文

阿里妈妈 该网站的域名已经被其他人绑定/seo网站推广经理

阿里妈妈 该网站的域名已经被其他人绑定,seo网站推广经理,广州网页设计制作,广州营业执照代办理写注册界面的后台 首先得建立一张数据库表,用于存储用户信息的userinfo表,包括注册时间,昵称,签名等 受理注册信息的servlet 然后在servlet包下建立一个注册的Regservlet的Servlet类,用于接收网页传来的信息&#xff0…

写注册界面的后台

首先得建立一张数据库表,用于存储用户信息的userinfo表,包括注册时间,昵称,签名等
1345586-20180805144613023-1937706184.png

受理注册信息的servlet

然后在servlet包下建立一个注册的Regservlet的Servlet类,用于接收网页传来的信息,并完成是否有邮箱重复检查,和添加用户信息,这里只给出dopost函数,因为表单提交是不想被看见的,

    /*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");response.setCharacterEncoding("UTF-8");request.setCharacterEncoding("UTF-8");String email=request.getParameter("email");String username=request.getParameter("nickname");String password=request.getParameter("password");UserinfoDao ud=new UserInfoDaoImp();int counts=ud.checkEmail(email);if(counts==0) {UserInfo userinfo=new UserInfo();userinfo.setEmail(email);userinfo.setNocname(username);userinfo.setPassword(MD5.MD5(password));ud.addUserinfo(userinfo);System.out.println("注册成功");response.sendRedirect(request.getContextPath()+"/jsp/regpage.jsp");}else {System.out.println("邮箱已被占用,请重新注册!");request.setAttribute("msg", "邮箱已被占用,请重新注册!");request.getRequestDispatcher("/jsp/regpage.jsp").forward(request, response);;}}

理解重点:请求转发和重定向

这里有一篇比较好理解的博客

简单的理解就是请求的次数不同,
request.getRequestDispatcher(url).forward(request,reponse),始终都只有一次请求,因为每次转发都带着同一条request,同时setAttribute属性的值也是不变的,
response.sendRedirect(url),每次重定向都发出新的请求,request里面的setAttribute的属性值没有了,是null

建立注册功能的Dao层

建一个接口UserInfoDao,写两个抽象方法,检查邮箱和注册的,还有一个是用于注册的抽象方法

public interface UserinfoDao {int checkEmail(String email);//检查注册void addUserinfo(UserInfo userinfo);UserInfo checkLogin(UserInfo userinfo);
}

建立实现上面接口的类

package com.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import com.domain.UserInfo;
import com.utilDB.DBUtils;public class UserInfoDaoImp implements UserinfoDao{DBUtils db=DBUtils.getIntstance();Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;@Override//检查email 是否已存在用户public int checkEmail(String email) {// TODO Auto-generated method stubtry {conn = db.getConnection();ps = conn.prepareStatement("select count(*) counts from userinfo where email=?" );ps.setString(1, email);rs =ps.executeQuery();if(rs.next()) {    //习惯性的检查是否有记录  如果没有记录直接get的话会有异常int i=rs.getInt("counts");return rs.getInt("counts");}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//好习惯记得每次关闭连接,和关闭顺序db.close(rs);db.close(ps);db.close(conn);}return 0;}public void addUserinfo(UserInfo userinfo) {// TODO Auto-generated method stubtry {try {conn =db.getConnection();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}  //记得获取连接,因为每一次都会关闭conn.setAutoCommit(false);   //先关闭自动提交ps=conn.prepareStatement("insert into userinfo(email,nicname,password) value(?,?,?)");System.out.println(userinfo.getEmail()+":"+userinfo.getNocname()+":"+userinfo.getPassword());ps.setString(1, userinfo.getEmail());ps.setString(2, userinfo.getNocname());ps.setString(3, userinfo.getPassword());ps.executeUpdate();conn.commit();  //记得执行完成后,完成提交} catch (SQLException e) {// TODO Auto-generated catch blocktry {conn.rollback();   //期间出现异常就回滚} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}e.printStackTrace();}finally {db.close(ps);db.close(conn);}}public UserInfo checkLogin(UserInfo userinfo) {try {conn = db.getConnection();ps = conn.prepareStatement("select * from userinfo where email=? and password=?" );ps.setString(1, userinfo.getEmail());ps.setString(2, userinfo.getPassword());rs =ps.executeQuery();if(rs.next()) {    //习惯性的检查是否有记录  如果没有记录直接get的话会有异常UserInfo user =new UserInfo();user.setEmail(rs.getString("email"));user.setNocname(rs.getString("nicname"));user.setPassword(rs.getString("password"));user.setHead_url(rs.getString("head_url"));user.setRegtime(rs.getDate("regtime"));user.setSingn(rs.getString("sign"));return user;}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//好习惯记得每次关闭连接,和关闭顺序db.close(rs);db.close(ps);db.close(conn);}return null;}}

执行的都是对数据库的增删改查,可以体现java的结偶,每一块都独立,

临时存储用户信息的类UserInfo方便我们不用每一次都去查数据库,就是简单的set,get方法

public class UserInfo {private int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getNocname() {return nocname;}public void setNocname(String nocname) {this.nocname = nocname;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getHead_url() {return head_url;}public void setHead_url(String head_url) {this.head_url = head_url;}public Date getRegtime() {return regtime;}public void setRegtime(Date regtime) {this.regtime = regtime;}public String getSingn() {return singn;}public void setSingn(String singn) {this.singn = singn;}private String email;private String nocname;private String password;private String head_url;private Date regtime;private String singn;
}

建立前台的文件包

1345586-20180805150726251-423644336.png

我们要在WebContent下建立
. css:用于放渲染html的代码
. jsp: 我们写的html文件都要另存为.jsp文件,这样才能有jsp文件转成java文件,然后由java文件编译成.class文件可以运行的文件,也就是为什么每第一次运行servlet都比较慢的原因,因为加载需要这一系列的转换,
. js: 放JavaScript代码的
. 注意:这里把html代码放到jsp文件的时候,要保留原来的头代码,删除html代码中的头,比如

保留

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

删除 <!DOCTYPE html>

最后记得修改html代码中的获取文件代码路径,一定要是服务器的文件下,不要是本地eclipse保存代码的文件,而是tomcat文件下的当前项目下,用EL表达式比较方便,例如 ${pageContext.request.contextPath}/

1345586-20180805152809769-1243725888.png

测试

注册一个已经注册的邮箱

1345586-20180805155612523-698952530.png

会注册失败的提示重新注册

1345586-20180805155641288-1319128096.png

转载于:https://www.cnblogs.com/liu-ya/p/9426047.html

http://www.jmfq.cn/news/5180059.html

相关文章:

  • 面试建设单位在哪个网站/网络推广工作内容
  • 万网服务器网站建设/网站友链查询源码
  • 阜阳网站建设价格/竞价排名点击器
  • 苏州市建设安全监督局网站/排名优化方案
  • 襄州区城乡建设局网站/江门seo
  • 芸志建站怎么建立网站/网络公关公司收费
  • 设计网站会员/海外营销
  • 餐饮企业网站建设方案书/sem竞价推广怎么做
  • 网站使用说明书/免费的行情网站app
  • 网站建设标书模板下载/ks免费刷粉网站推广
  • 深圳做棋牌网站建设找哪家公司好/百度推广免费
  • 企业网站推广案例/一个产品的市场营销策划方案
  • 做3d任务的网站/成都网站seo外包
  • 怎么让网站排名上去/电商产品推广方案
  • 做英文网站价格/百度竞价渠道代理商
  • 无锡网站建设 首选众诺/百度极速版app下载安装挣钱
  • 网站建设哪里比较好/免费网页制作网站
  • 推荐完善政府网站建设/深圳全网推广
  • 开源展示型网站/优化课程设置
  • php个人网站源码带音乐/网站设计师
  • 家居企业网站建设流程/品牌运营具体做什么
  • 网站建设框架/代写文章价格表
  • 怎样做购物网站/域名查询服务器
  • 怎样找到黄页网站/b站推广怎么买
  • 如何利用某个软件做一个网站/网络营销主要是学什么的
  • 代还信用卡网站建设/公关
  • 机床回收网站建设/今日十大热点新闻
  • php做网站难么/搜索网站大全
  • 网站建设安排/免费优化
  • 做外贸女装有哪些网站有哪些/关联词有哪些三年级