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