跟小博老师一起学Servlet ——Servlet案例
2017-02-13 00:00
295 查看
细心的朋友发现Servlet的执行方法doXXX方法都带中二个类型为HttpServletRequest、HttpServletResponse的参数,通过这二个变量我们可以取请求信息与向客户端做出响应。本节小傅老师与大伙聊聊HttpServletReqeust。
比如我们要取得以下表单的【uname】与【interest】参数的值,我们可以这么操作。
由HttpServletRequest接口中引申出来的知识点非常多,小傅老师会陆续给大家讲解。
HttpServletRequest
HttpServletReqeust是一个继承自ServletRequest,由容器负责创建实例,它通常作为Servlet的服务方法的参数(doGet,doPost,doDelete等)。客户端的IP、端口、参数、cookie、session等请求信息它都可以取得,是Servlet中最常用的接口之一。常用方法
getRemoteAddr | 取得请求端的IP地址 |
getParamter | 取得请求参数 |
getAttribute | 取得属性 |
GetRequestURL | 取得请求的URL |
getCookies | 取得客户端传来的cookies |
getSession | 取得会话实例 |
setContentType | 设定MIME格式 |
setAttribute | 设定属性 |
演示
/** * 显示HttpServletRequest接口中常用方法 * 作者:樊建华 * 日期:2017/2/9 */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //取得请求端的IP地址 String addr = req.getRemoteAddr(); //取得请求端的端口号 Integer port = req.getRemotePort(); //取得请求的url String url = req.getRequestURL().toString(); //取得客户端的cookie Cookie cookies[]= req.getCookies(); //取得会话接口实例 HttpSession session = req.getSession(); //根据参数名称取得参数值 String paramName = "uname"; String paramName_value = req.getParameter("uname"); //根据属性名称取得其值 String attrName="aname"; Object attrName_value = req.getAttribute(attrName); //向控制台输出信息 System.out.println("你请求的IP为:"+addr+"\t端口为:"+port); System.out.println("请不要做非法操作,我们会保存您的IP和操作记录"); System.out.println("参数名为uname的值为:"+paramName_value); System.out.println("属性名为aname的值为:"+attrName_value); } |
取得请求参数
取得请求参数是servlet最为频繁的操作之一,它根据参数名称来取得其值。参数的名称我们可以理解为表单控件名称,一般情况表单控件是唯一,但有时也会存在同名控件。Servlet针对每种情况都提供了相应的方法。比如我们要取得以下表单的【uname】与【interest】参数的值,我们可以这么操作。
<form action="http://localhost/fjhweb/req.do" method="get"> 用户名:<input type="text" name="uname" /><br /> 爱好:<input type="checkbox" name="interest" value="编程"/>男 <input type="checkbox" name="interest" value="写书"/>女<br /> <input type="submit" value="提交" /> </form> |
取得uname
整个表单中只有一个名为uname的控件,可以使用getParameter()获取//根据参数名称取得参数值 String paramName = "uname"; String paramName_value = req.getParameter("uname"); |
取得interest
表单中有二个控件都叫“interest”,此时如还采用getParameter()将不能完整的取到值。这种情况我们应该调整为getParamterValues()方法。String paramInterest="interest";//就是表单控件名称 //由于传过来二个名都叫interest的参数,我们要用getParamterValues()方法 //并用一个字符数组接收其值 String paramInterest_value[] = req.getParameterValues(paramInterest); |
相关文章推荐
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet取得请求参数
- 跟小博老师一起学Servlet ——Servlet之过滤器实现和应用
- 跟小博老师一起学Servlet ——Servlet之COOKIE
- 跟小博老师一起学Servlet ——Servlet之会话跟踪
- 跟小博老师一起学Servlet ——Servlet之客户端跳转
- 跟小博老师一起学Servlet ——Servlet之HttpServletResponse
- 跟小博老师一起学Servlet ——Servlet之属性操作
- 跟小博老师一起学Servlet ——Servlet之属性操作2
- 跟小博老师一起学Servlet ——Servlet之监听器
- 跟小博老师一起学Servlet ——Servlet工作原理
- 跟小博老师一起学Servlet ——Servlet之HttpServletResponse
- 跟小博老师一起学Servlet ——Servlet生命周期
- 跟小博老师一起学Servlet ——Servlet之属性操作
- 跟小博老师一起学Servlet ——Servlet之过滤器实现和应用
- 跟小博老师一起学Servlet ——初识Servlet
- 跟小博老师一起学Servlet ——Servlet之会话跟踪
- 跟小博老师一起学Servlet ——Servlet之属性操作2