request.getheaderParameter("XXX")取不到值

经验11-案例分析request.getparameter()方法的用法及请求乱码处理、分配器方法_读书人
经验11-案例分析request.getparameter()方法的用法及请求乱码处理、分配器方法
&来源:读书人网&【读书人网():综合教育门户网站】
心得11--案例分析request.getparameter()方法的用法及请求乱码处理、分配器方法1.一个案例具体分析:request
心得11--案例分析request.getparameter()方法的用法及请求乱码处理、分配器方法1.一个案例具体分析:request.getparameter()方法的用法及请求乱码处理packagecom.&importjava.io.IOEimportjava.io.UnsupportedEncodingEimportjava.util.Eimportjavax.servlet.ServletEimportjavax.servlet.http.HttpSimportjavax.servlet.http.HttpServletRimportjavax.servlet.http.HttpServletR&publicclass Request3 extends HttpServlet {&& public void doGet(HttpServletRequest request,HttpServletResponse response)&&&&&&& throws ServletException, IOException {&&&&& /*超链接乱码问题:如果是jsp文件中的超链接可以直接用java中的URLEncoder.eccoding()类解决,&&&&& &* 但是html中的职能用解决get请求方式的方法解决。&&&&& &*/&&&&& System.out.println(newString(request.getParameter(&name&).getBytes(&ISO-8859-1&),&UTF-8&));&& }&& public void test2(HttpServletRequest request)&&&&&&& throws UnsupportedEncodingException {&&&&& /*请求方式是get的乱码解决,请求方式为get方法的比较麻烦,需要手动解决,&&&&& &* tomact服务器默认的编码是ISO-8859-1,所以需要手动修改编码。你也可以去修改tomcat安装路径中的conf中的server.xml文件&&&&& &*/&&&&& String name =request.getParameter(&name&);&&&&& name = newString(name.getBytes(&ISO-8859-1&),&UTF-8&);&&&&& String password = newString(request.getParameter(&password&).getBytes(&ISO-8859-1&),&UTF-8&);&&&&& System.out.println(name+&----&+password);&& }&&& //表单中form的请求方式是post&& public void test1(HttpServletRequest request){&& && //post请求方式的乱码解决,只对post起作用&&&&& try {&&&&&&& request.setCharacterEncoding(&UTF-8&);&&&&& } catch (UnsupportedEncodingException e) {&&&&&&& // TODO Auto-generated catch block&&&&&&& e.printStackTrace();&&&&& }&&&&& String name =request.getParameter(&username&);&&&&& String password =request.getParameter(&password&);&&&&& String sex =request.getParameter(&sex&);&&&&& String city =request.getParameter(&city&);&&&&& String[] likes =request.getParameterValues(&likes&);&&&&& String l = &&;&&&&& for(inti=0;l!=null&&i&likes.i++){&&&&&&& String like = likes[i];&&&&&&& l = l+&&& &+&&&&& }&&&&& String mome =request.getParameter(&mome&);&&&&& System.out.println(&用户名:&+name);&&&&& System.out.println(&密&&& 码:&+password);&&&&& System.out.println(&性&&& 别:&+sex);&&&&& System.out.println(&城&&& 市:&+city);&&&&& System.out.println(&简&&& 历:&+mome);&&&&& System.out.println(&爱&&& 好:&+l);&& }&& public void doPost(HttpServletRequestrequest, HttpServletResponse response)&&&&&&& throws ServletException, IOException {&&&&& doGet(request, response);&& }}2. 防盗链技术案例分析packagecom.&importjava.io.IOEimportjavax.servlet.ServletEimportjavax.servlet.http.HttpSimportjavax.servlet.http.HttpServletRimportjavax.servlet.http.HttpServletRpublicclass Request4 extends HttpServlet {&&& public void doGet(HttpServletRequest request,HttpServletResponse response)&&&&&&& throws ServletException, IOException {&& && //解决响应的乱码,其实响应乱码就是从这个servlet类获取的汉字,请求乱码是从html或jsp界面请求过来的汉字&&&&& response.setContentType(&text/charset=UTF-8&);&&&&& //获取请求头中的referer(参照,即防盗参数)&&&&& String referer =request.getHeader(&referer&);&&&&& //进行判断,如果查到的referer参数是空值或不是我要求的格式就重定向到我指定的界面,这里或者一定要是非。&&&&& if(referer==null ||!referer.startsWith(&http://localhost&)){&&&&&&& response.sendRedirect(&/WebDemo/index.jsp&);&&&&&&&&&&&& }&&&&& String value = &秘密!!!&;&&&&& response.getWriter().write(value);&& }&& public void doPost(HttpServletRequestrequest, HttpServletResponse response)&&&&&&& throws ServletException, IOException {&&&&& doGet(request, response);&& }}3.Servlet API中定义了一个RequestDispatcher接口,俗称请求分派器。它定义了如下两个方法:?&&&&&& public voidforward(ServletRequest request, ServletResponse response)?&&&&&&public void include(ServletRequest request, ServletResponseresponse)获取RequestDispatcher实例的方式主要有两种:?&&&&&&调用ServletContext接口提供的getRequestDispatcher(Stringurl)方法。?&&&&&&调用ServletRequest接口提供的getRequestDispatcher(Stringurl)方法。?&&&&&&include方法:RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器端包含功能。被包含的Servlet程序不能改变响应消息的状态码和响应头,如果它里面存在这样的语句,这些语句的执行结果将被忽略。l&&&&请求转发的应用场景:MVC设计模式(下篇具体介绍)l&&&&request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。l&&&&request对象同时也是一个域对象,开发人员通过request对象在实现转发时,把数据通过request对象带给其它web资源处理。ü&&&&setAttribute方法 ü&&&&getAttribute方法& ü&&&&removeAttribute方法ü&&&&getAttributeNames方法例子:packagecom.importjava.io.IOEimportjavax.servlet.ServletEimportjavax.servlet.http.HttpSimportjavax.servlet.http.HttpServletRimportjavax.servlet.http.HttpServletRpublicclass Request5 extends HttpServlet {&&& public void doGet(HttpServletRequest request,HttpServletResponse response)&&&&&&& throws ServletException, IOException {&& request.getRequestDispatcher(&/header.html&).include(request,response);&& response.getOutputStream().write(&aaaaaaaaaa&.getBytes());&& request.getRequestDispatcher(&/fooder.html&).include(request,response);&& }&& public void doPost(HttpServletRequestrequest, HttpServletResponse response)&&&&&&& throws ServletException, IOException {&&&&& doGet(request, response);&& }}request获取请求参数案例详解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
request获取请求参数案例详解
|0|0|文档简介
专业IT培训机构|
总评分0.0|
&&(1)创建web应用,Example09;
(2)在Example09应用下,新建一个param.html文件,文件内容见代码;
(3)在Example09应用下,新建一个Servlet类,ParamServlet,具体内容见代码;
(4)将Example09发布到Tomcat服务器中;
(5)启动Tomcat服务器;
(6)在浏览器地址栏上访问param.
(7)点击超链接;
(8)在文本框中输入用户名,密码及选择爱好。
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢request.getParameter取不到值 - ITeye问答
jsp 上无论上input action都取不到值?为何?
&input type='hidden' value='1' name='test1'/&
&input type='text' name='test2'/&
就算是radio 也取不到。。。只有通过url 上 action.do?test1=XX&test2=XX 这样才行。。。求教
问题补充:没有文件上传,只是单单用&input type='text'&或者&input type='hidden'&。name都已经有给了input 但是后台action 用 request.getParameter("")取出来是null
问题补充:通过url 来取就行,用&input& 的按钮之类就取不到值
但是就是需要用到&input&
问题补充:是忘了加post 。但是加完之后也还是取不到值。
&html:html&
&html:form action="paperAction" method="post"&
&input type="hidden" name="questionid" value='&%=questionid %&'/&
&/html:form&&/html:html&
String questionid = request.getParameter("questionid");
null
问题补充:form 上面已经有 paperid get/set 方法都已经写了
问题补充:&%@ page language="java" import="java.util.*..." pageEncoding="GBK"%&
&%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%&
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&
&html&
...
&body&
&html:html& &html:form action="paperAction" method="post"&
&table&
&tr&&td&&input type="hidden" name="questionid" value='&%=questionid %&'/&&/td&&/tr&
&/table&
&/html:form&&/html:html&
问题补充:是没有&html:submit value='作答'&&/html:submit&这个的关系
Damn
谢谢各位了,各位都给了不少意见
一个form表单 必须要有submit作为提交对象的
一看就是STURTS 标签,我一般都是在JS 里提交,很少用SUBMTI 标签
加上提交按钮 加上form标签
不需要用url传参就可以用request.getParameter获取值了吧
我勒个去啊。少了提交按钮。。。。
&html:html&
&html:form action="paperAction" method="post"&
&input type="hidden" name="questionid" value='&%=questionid %&'/&
&input type="submit" value="提交"/&
&/html:form&&/html:html&
没有见到提交按钮
你这样
&html:html&
&html:form action="paperAction" method="post"&
&input type="hidden" name="questionid" value=''/&
&/html:form&&/html:html&
String questionid = request.getParameter("questionid");
如果后台能取到值,那么就是&%=questionid %&没有值了,你确认下
你的
&input type='hidden' value='1' name='test1'/&
&input type='text' name='test2'/&
在form表单中吗?
建议贴全代码。或者自己通过chrome debug看看数据提交了吗
form标签写了 method="post"属性了吗?
对,还有文件上传。。这个也无法获取
提交地址对吧,如果不对,那就获取不到
也就是你 action.do?test1=XX&test2=XX& 的地址要和你在from中提交的地址一样
你是不是 文件上传啊 !
已解决问题
未解决问题20:07 提问
request.getParameter后台取不到值
下边的是form代码
下边是后台servelet代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/charset=UTF-8");
response.setCharacterEncoding("UTF-8");
String action = request.getParameter("action");
//这的action就能取到值
if(action.equals("login")){
String username = request.getParameter("username");
String password = request.getParameter("password");
//这的username和password就取不到值,为什么啊?
User u = userservice.login(username, password);
if(u!=null){
if(u.getIsDelete()==0){
request.getSession().setAttribute("user", u);
response.sendRedirect("user?action=index");
request.getSession().setAttribute("userIsDeleMsg", "该用户已被禁用,无法登录!");
request.getRequestDispatcher("login.jsp").forward(request, response);
request.getSession().setAttribute("msg", "验证失败,请重新输入用户名或密码!");
response.sendRedirect("Login.jsp");
}else if(action.equals("index")){
//跳转到首页
request.getRequestDispatcher("/index.jsp").forward(request, response);
按赞数排序
form代码怎么显示不出来?
&div class="form-group"&
&label for="username"&用户名&/label&
&input type="text"
class="form-control " name="username" id="username"
placeholder="Enter email"&
&div class="form-group"&
&label for="password"&密码&/label& &input type="password"
class="form-control" name="password" id="password"
placeholder="Password"&
&div class="form-group"&
&button type="submit" class="btn btn-success"&登录&/button&
&/fieldset&
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!今天看啥 热点:
ajax post请求request.getParameter(&&)取值为null,ajax取值
今天在写提交一个json数据到后台,然后后台返回一个json数据类型。但是发现后台通过request.getParamter(“”)取到的值为null。
于是写一个简单的ajax 请求,来排查问题
前台代码:
$(document).ready(function(){
$("#ajax").click(function(){
var depart="depart";
url :path+ "/AjaxReponse",
data :"depart="+depart,
type : "post",
dataType : "json",
success: function(data){
alert(data);
后台代码:
String depart=request.getParameter("depart");
现象:后台取到值为null。但是在google chrome调试工具调试时,request中已经有发送的值了
一.网友方法
正常的post请求(不包括ajax请求)在http头中的content-type为application/x-www-form-urlencoded,这时在java后台可以通过request.getParameter(name)的形式获取.但是通过原生ajax请求时,在java后台通过request.getParameter(name)的形式却无法获取到传入的参数.
但是实际上在上图中可以看到,content-type已经是application/x-www-form-urlencoded的形式了。所以网友的方法不适用
http://m.blog.csdn.net/blog/eyebrother/
二.编码格式
既然在调试器中看到request的发送内容没问题,那么就是编码格式的问题了。在后台添加代码:
request.setCharacterEncoding(“utf-8”);
可以解决这个问题。
但是发现前台写成这种类型
"depart" : depart
后台取到的也是null。所以最终将js文件编码格式改为utf-8.解决这个问题
三.发送json类型数据到后台
$(document).ready(function(){
$("#ajax").click(function(){
var isReceipt = "1";
var adress ="2";
var reason = "3";
var projectInfo = {
"adress" : isReceipt,
"ownerDept" : {
"deptCode" : adress
"reason" : reason
url :path+ "/AjaxReponse",
"depart" : JSON.stringify(projectInfo)
type : "post",
dataType : "json",
success: function(data){
alert(data);
String depart=request.getParameter("depart")
Gson gson = new GsonBuilder().create()
Depart dep = gson.fromJson(depart),
Depart.class)
前台通过JSON.stringify()方法将json类型转换为string类型发送。
后台是使用google的GSON包,然后将json类型数据(String)转换为实体类数据类型。
四.js 工具
由于js语法比较复杂,编译器无法进行检查。所以js代码风格,错误比较难找。这里推荐我使用的两个工具。
可以格式化js代码
检查语法错误
具体使用不详述了,我都是下载这两个工具对应的notepad++插件。在notepad使用非常方便。
csdn 的新版博客编辑器确实不错,但是在写博客时没有随手保存,打开其他的csdn页面时,提示markdown 编辑器实例已运行,必须重写加载。然后整篇博客都重写了。实在是不能忍!
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&&&
WEB前端教程最近更新}

我要回帖

更多关于 request.getattribute 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信