在下列情况下Servlet容器装载Servlet:
Servlet容器启动时自动加载某些Servlet
只需要在<Servlet></Servlet>之间添加:<loadon-startup>1</loadon-startup>
中间数字越小表示优先级越高
当客户端首次向Servlet发送请求的时候
Servlet类被更新时重新加载
Servlet与JSP九大内置对象的关系
Jsp对象
JSP对象 | Servlet中怎样获得 |
out | resp.getWriter |
request | service的req参数 |
response | service的resp参数 |
session | req.getSession()方法 |
application | getServletContext()方法 |
exception | Throwable |
page | this |
pageContext | PageContext |
config | getServletConfig()方法 |
Servlet获取表单数据
在login.jsp中提交下列表单
<span style="font-size:18px;"><form name="regForm" action="servlet/RegServlet" method="post" >
<span style="white-space:pre"> </span> <table border="0" width="800" cellspacing="0" cellpadding="0">
<tr>
<span style="white-space:pre"> </span><td class="lalel">用户名:</td>
<td class="controler"><input type="text" name="username" /></td>
</tr>
<tr>
<td class="label">密码:</td>
<td class="controler"><input type="password" name="mypassword" ></td>
</tr>
<tr>
<td class="label">确认密码:</td>
<td class="controler"><input type="password" name="confirmpass" ></td>
</tr>
<tr>
<span style="white-space:pre"> </span><td class="label">电子邮箱:</td>
<span style="white-space:pre"> </span><td class="controler"><input type="text" name="email" ></td>
</tr>
<tr>
<td class="label">性别:</td>
<td class="controler"><input type="radio" name="gender" checked="checked" value="Male">男<input type="radio" name="gender" value="Female">女</td>
</tr></span>
<span style="font-size:18px;"><span style="white-space:pre"> </span><tr>
<span style="white-space:pre"> </span><td class="label">爱好:</td>
<span style="white-space:pre"> </span><td class="controler">
<span style="white-space:pre"> </span><input type="checkbox" name="favorite" value="nba"> NBA
<span style="white-space:pre"> </span><input type="checkbox" name="favorite" value="music"> 音乐
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span><input type="checkbox" name="favorite" value="movie"> 电影
<span style="white-space:pre"> </span> <span style="white-space:pre"> </span><input type="checkbox" name="favorite" value="internet"> 上网
<span style="white-space:pre"> </span></td>
<span style="white-space:pre"> </span></tr>
</span>
<span style="font-size:18px;"></form></span>
首先创建一个USERS类,该类包含username,password,email,gender属性及其相应的getter()和setter()方法
然后创建一个LogServlet类
在其doPost()方法中,先定义相应的username,password,email,gender参数,需要抛出ServletException和IOException
<pre name="code" class="java"><span style="font-size:18px;">String username,mypassword,gender,email;</span>
<span style="font-size:18px;">String favorites[];</span>
再使用request.getParameter()方法获取相应的值,checkbox只能使用getParameterValues()方法获取
<pre name="code" class="java" style="font-size: 18px;">username = request.getParameter("username");
mypassword = request.getParameter("mypassword");
gender = request.getParameter("gender");
email = request.getParameter("email");
favorites = request.getParameterValues("favorite");
</pre></p><p><span style="font-size:18px;"><span style="font-size:18px;"></span></span></p><p><span style="font-size:18px;"><span style="font-size:18px;">new一个User对象u,使用setter()方法将值赋给对象u</span></span></p><p><span style="font-size:18px;"></span><span style="font-size:18px;"><span style="font-size:18px;"></span></span><pre name="code" class="java"><pre name="code" class="java">Users u = new Users();
u.setUsername(username);
u.setMypassword(mypassword);
u.setGender(gender);
u.setEmail(email);
u.setFavorites(favorites);
最后,将注册成功的对象u保存在会话中,跳转到注册成功页面,表单数据接收完毕
<span style="font-size:24px;">request.getSession().setAttribute("regUser", u);
//需要使用..返回上一层目录
request.getRequestDispatcher("../loginSuccess.jsp").forward(request,response);</span>
在jsp页面中可以使用useBean获取会话中数据
<jsp:useBean id="regUser" class="com.Users.Users" scope="session"/>
然后使用getProperty()获取
<jsp:getProperty name="regUser" property="username" />