如何将两个不同用户的注册写在同一个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是为空的。就会出现空指针异常的现象。