当前位置: 代码迷 >> 综合 >> 两个不同用户的注册写在同一个servlet中
  详细解决方案

两个不同用户的注册写在同一个servlet中

热度:15   发布时间:2024-01-25 00:45:40.0

如何将两个不同用户的注册写在同一个sevlet中?

首先这两个不同用户的类是不一样的

例如:

A用户是normal类、B用户是special类。

最笨的方法当然是我写两个servlet,在Web.xml加上这两个servlet。但是这样我们就要添加好多个不必要的界面,会相当繁琐。

解决办法是:

把两个不同用户的注册表单用相同的servlet来响应。

那相同的servlet响应的话就必须加上一个if...else...的判断。具体如下:

表单1:

<form id="form1" action="registerServlet" method="post" ><h2>邮箱</h2> <label><input type="text" id="email" name="email"  class="txt_input txt_input2" ></label><h2>姓名</h2><label><input type="text" id="name" name="name" class="txt_input txt_input2" ></label><h2>密码</h2><label><input type="password" id="password" name="password" class="txt_input" ></label><div class="rem_sub">                 <div class="clearfix"><input type="submit" class="sub_button" name="button" id="button" value="注册" οnclick="return check()"></div><div class="reg"><a href="sign.html">我有帐号,去登录</a></div></div></form>

表单2:

<form id="form2" action="registerServlet" method="post"><h2>邮箱</h2><label><input type="text" id="email1" name="email1"  class="txt_input txt_input2" ></label><h2>姓名</h2><label><input type="text" id="name1" name="name1" class="txt_input txt_input2"></label><h2>密码</h2><label><input type="text" id="password1" name="password1" class="txt_input" ></label><div class="rem_sub"><div class="clearfix"><input type="submit" class="sub_button" name="button" id="button" value="注册"></div><div class="reg"><a href="sign.html">我有帐号,去登录</a></div></div></form>

serlet.java:

        String email= request.getParameter("email");String name = request.getParameter("name");String password = request.getParameter("password");String email1= request.getParameter("email1");String name1 = request.getParameter("name1");String password1 = request.getParameter("password1");//System.out.println(name);if(email==null) {Person_special person1 = new Person_special();person1.setEmail(email1);person1.setName(name1);person1.setPassword(password1);PersonService personService1 = new PersonService();int num1 = personService1.registerPerson_special(person1);response.getWriter().write(num1 + "");//special}else {Person_normal person  = new Person_normal();person.setEmail(email);person.setName(name);person.setPassword(password);PersonService personService = new PersonService();int num = personService.registerPerson_normal(person);response.getWriter().write(num + "");//normal}

值得注意的是:

由于我们写的是一个servlet。

我们写表单的时候最好不要写value="",这样的东西,否则可能会出现有空指针异常的情况。

那为什么写两个不同的servlet就不会出现这种情况了呢?

因为当我们给表单赋值的时候value就已经改变了。而两个的话就会有一个value是为空的。就会出现空指针异常的现象。

 

 

  相关解决方案