`

jsp------request

阅读更多

1.request对象是HttpServletRequest接口的一个实例,HttpServletRequest的父接口是ServletRequest, 但是ServletRequest只有一个子接口-----HttpServletRequest,这样考虑是为了以后的扩展,现在的程序都是基于Http协议,以后有新协议,就直接扩展即可

request.getParameter(xx);//接收(表单/链接)参数

2.//中文乱码。。。。。。。。。。。。。。。。。。。。。。。。。。
范例:input.jsp
<form method="post" action="input.jsp">
   输入信息:<input name="info"/>
  <input type="submit" value="显示"/>
</form>

input.jsp
<%
   String str = request.getParameter("info"); //因为参数不是属性,他是String类型,不是Object类型,不需要转型
%>
 <h1>参数内容<%=str%></h1>

以上的input.jsp中没有加入page指令,所以无法正确的显示出中文,下面为其加上page指令
但是。。。加上page指令后发现,页面中原来的文字,可以正常显示,但是传递进来的参数文字,却无法正确的进行显示,在进行request接收参数的过程中会产生乱码

分析乱码产生原因

input.jsp
<%@page contentType="text/html;charset=GBK"%> //在http中加入一个头信息而已,但是他不会影响服务器端的行为,相当于response.setContentType("text/html");  response.setCharacterEncoding("GBK");
<%
   String str = request.getParameter("info"); //如果客户端传过来的是一个中文,那么服务器默认是按照 iso-8859-1来处理, 所以下面str写的是iso8859-1的文字,你写的是中文,我找的却是因为翻译,当然翻译错了
//下面转码,使得他变成中文,那么我叫我的翻译再反翻译一次,然后让中文翻译来翻
str = new String(str.getBytes("ISO8859-1")); //等效于str = new String(str.getBytes("ISO8859-1"),"GBK"); 因为他会去转换成page需要的东西

%>
 <h1>参数内容<%=str%></h1>


注意在客户端的显示: ????叫做翻译不出来,在服务器端写入的时候就是错的东西
乱码叫做:翻译的文字不对,没有正确告诉设置contentType,对于乱码我们可以使用右键--->编码解决,对于?????我们要重新翻译



但是上面的做法好繁琐。。。我们需要统一的操作
如果要想完成此操作,可以直接使用从ServletRequest接口中继承来的:setCharacterEncoding()方法来进行统一编码设置

<%@page contentType="text/html;charset=GBK"%> ("text/html;charset=GBK");
<%
  request.setCharacterEncoding("GBK");//按中文接收
   String str = request.getParameter("info"); 
%>
 <h1>参数内容<%=str%></h1>

3.表单的get和post提交
post 本身不受长度限制,理论上可以任意长度,但是如果上传的内容过多,则会超过HTTP的超时时间的限制

XXX.jsp?参数名=参数值&参数名=参数值   //这个东西学名叫 URL重写

4.
public java.util.Enumeration getParameterNames();
这个方法有一个好处,在jsp任意修改的时候,我都能得到jsp表单的全部内容

Enumeration enur = request.getParameterNames();
while(enur.hasMoreElements()){
  String paramName = (String)enuc.nextElement();
}

但是如果表单中有复选框怎么办,一般我们在需要使用数组的地方加一个标注】

<form action="request04.jsp" method="post">
    姓名: <input type="text" name="name"/><br/>
    兴趣:<input type="checkbox" name="**int" value="游泳">游泳
          <input type="checkbox" name="**int" value="唱歌">唱歌
          <input type="checkbox" name="**int" value="跳舞">跳舞
</form>

凡是在接受参数的时候,发现一个参数的名称是以"**"开头的则表示按照数组的方式接收

Enumeration enur = request.getParameterNames();
while(enur.hasMoreElements()){
  String paramName = (String)enuc.nextElement();
   if(paramName.startsWith("**")){
     String[]  paramValues = request.getParameterValues(paramName);
   }else{
    String  paramValue = request.getParameter(paramName);
    }
}

5.取得客户端的ip地址

request.getRemoteAddr();  //127.0.0.1









分享到:
评论

相关推荐

    jsp-api-2.1.jar

    5. **JSP内置对象**:如 request、response、session、application、pageContext、out、exception 等,它们提供对HTTP请求、响应、会话和全局应用程序信息的直接访问。 6. **EL(Expression Language)**:EL是JSP ...

    精通jsp-web开发技术与典型应用

    2. **JSP内置对象**:如request、response、session、application等,它们提供了对HTTP请求和响应的访问,以及会话管理和应用程序级数据的共享。 3. **JavaBeans**:JSP与JavaBeans的结合使用,是Java Web开发中...

    jsp-api.jar

    - **request**:代表HTTP请求,可以获取请求参数、头信息等。 - **response**:代表HTTP响应,用于设置响应头、状态码及输出内容。 - **session**:管理用户会话,存储用户状态信息。 - **application**:全局...

    实例详解JSP内置对象--request对象

    实例详解JSP内置对象--request对象 request对象是JSP中的内置对象之一,它提供了访问HTTP请求信息的功能。在基于Web的开发中,request对象扮演着极其重要的角色。本文将通过实例详解request对象的使用和掌握。 一...

    javax.servlet.jsp-api-2.3.2-b01.jar.zip

    例如,`PageContext`接口是JSP页面的主要上下文对象,它提供了一种访问所有JSP作用域(page, request, session, application)的统一方式,以及对JSP内置对象的访问。 **4. pageContext.setAttribute()方法** `...

    jsp-api文档

    - `request`: 代表HTTP请求。 - `response`: 用于构建HTTP响应。 - `session`: 提供会话管理。 - `application`: 处理全局应用程序信息。 - `out`: 用于向响应输出流写入内容。 - `pageContext`: 提供对当前...

    jsp ----挂号系统

    JSP有九个内置对象,包括`request`, `response`, `session`, `application`, `page`, `pageContext`, `out`, `config`和`exception`。这些对象对应于Servlet API中的对象,为开发者提供了处理HTTP请求、响应、会话...

    JSP-EL表达式.ppt

    * requestScope:返回对请求对象的属性的访问权限 * sessionScope:返回会话范围的变量名,这些名称已映射至相应的值 * applicationScope:返回应用范围内的变量,并将变量名映射至相应的值 EL 在 JSP 中的应用 EL...

    Jsp-Servlet-JavaBean企业事务管理系统

    开发者可以使用JSP的内置对象如request、response、session等来处理HTTP请求,以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来简化页面编程。 其次,Servlet是Java中的服务器端...

    jsp - Wiley - Beginning JavaServer Pages

    - 例如:`pageContext`, `request`, `session`, `application`等。 - 示例: - 获取当前请求的参数: ```jsp ${param.username} ``` #### 四、JSP标签库 JSP标签库提供了一组预定义的标签,用于简化常见的...

    软件工程1611-JSP-实验一.zip

    - JSP提供了9个内置对象,如request、response、session、application等,它们直接可用,简化了Web开发。例如,request对象用于获取HTTP请求参数,response对象负责构建并发送HTTP响应。 5. EL(Expression ...

    JSP-Servlet-Ajax考题共享

    - JSP中使用`response.sendRedirect()`进行重定向,`request.getRequestDispatcher()`用于请求转发。 - 重定向URL可见于浏览器地址栏,而请求转发则不显示。 - 设置JSP的字符编码通常在page指令中用`contentType=...

    Jsp-Servlet示例

    **JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态Web应用程序方面发挥着关键作用。本教程将引导你通过Eclipse IDE创建一个基本的JSP-Servlet项目,以便理解这两者如何协同工作。*...

    基于jsp-tomcat-MysqL的新闻发布系统

    开发者通常会使用JSP的内置对象(如request、response、session等)以及自定义标签库(Tag Libraries)来简化开发。 2. **tomcat**:Tomcat是Apache软件基金会的一个开源项目,它是Java EE(现在称为Jakarta EE)中...

    JSP获取HTTP header信息(request)例子

    ### JSP获取HTTP Header信息(Request)详解 在Web开发中,了解如何获取HTTP请求头信息是非常重要的,因为这些信息能够帮助我们更好地理解客户端环境、优化响应策略以及进行安全性检查等。下面将详细介绍JSP中如何...

    jsp-mysql-counter.rar_jsp mysql

    JSP可以通过`request`对象获取HTTP请求,然后通过查询数据库获取当前计数值,增加后更新回数据库。同时,更新后的计数值可以使用EL(Expression Language)或JSTL(JavaServer Pages Standard Tag Library)标签显示...

    jdbc-jsp-ch1.rar

    - JSP可以通过 `request` 和 `session` 对象传递参数,例如用户输入的数据,以供JavaBean使用。 5. **示例中的“jsp-ch1”**: - 这可能是教程或项目的第一个章节,可能包含一个简单的JSP页面和相关的Java类,...

    The-JSP-dynamic-web-.zip_The Web_jsp网站

    - 学习创建基本的JSP页面,处理HTTP请求,使用JSP内置对象(如request、response、session)。 - 实践数据库连接、查询操作,使用JDBC和PreparedStatement。 - 掌握用户认证、权限控制等常见的Web应用功能实现。 ...

    JSP-GET-POST传递的乱码问题

    - 解决方案:除了在JSP中设置页面编码外,还需要在Servlet的`doPost`方法中调用`request.setCharacterEncoding("UTF-8")`。 3. 文件上传与乱码: - 当涉及到文件上传时,不仅需要注意请求参数的编码,还要关注...

Global site tag (gtag.js) - Google Analytics