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

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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值