因为你还没有将这个页面提交,根本取不到request对象,
解决方案 »
- 急急急!struts2报404错误!所有分都送上!
- [求助]这个jsp页面设计如何实现
- 几个问题不明白??请教??
- Struts标签小问题!问题解决一定给分!
- mysql中EMUN类型该怎么取??
- session值在新窗口中变成NULL
- Input/output error: java.net.SocketException: Connection reset
- jsp和javabean
- 用applet画线,IE一动(或最小化后恢复)线就没了或改变颜色了,用......
- 请教各位一个问题,要实现前台页面实时刷新数据用什么方法比较好
- 关于处理表单使用SERVLET获取还是JAVAbean的问题
- Tomcat 端口80,但是启动时catalina.connector 出错,说路径已经占用,但是。。。。
在参数中加入 request 对象吧
import java.sererlet.http.*;
public static String getString(HttpRequst request,String pname){
String result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}}
request是编译的时候就有的成员变量
你是不是<%! -> <% ?
<%!
String get_Parameter(ServletRequest request,String value)
{
String result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}
String tmp = get_Parameter(ServletRequest request,"fold_id");
%>
完整的
<%@ page import="javax.servlet.http.*" %>
<%!
String get_Parameter(String value)
{
String result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}
String tmp = get_Parameter("fold_id");
%>
<%@ page import="javax.servlet.http.*" %>
<%!
String get_Parameter(HttpServletRequest request,String value)
{
String result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}
String tmp = get_Parameter(request,"fold_id");
%>
你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。<%@ page import="javax.servlet.http.*" %>
<%!
String get_Parameter(HttpServletRequest request,String value)
{
String result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}
%>
<%String tmp = get_Parameter(request,"fold_id");%>
定义为:String get_Parameter(HttpServletRequest request,String value)
调用为:get_Parameter(request,vaule);
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;// User imports(注意:这儿开始的是你在jsp中的import)import java.util.*; //[ /schedule/weekPlanView.jsp; Line: 4]
import java.sql.Timestamp; //[ /schedule/weekPlanView.jsp; Line: 9]
// built-in init parameters:
// boolean _verbose -- wants debugging// Well-known variables:
// JspWriter out -- to write to the browser
// HttpServletRequest request -- the request object.
// HttpServletResponse response -- the response object.
// PageContext pageContext -- the page context for this JSP
// HttpSession session -- the session object for the client (if any)
// ServletContext application -- The servlet (application) contextpublic final class __JSP文件名称
extends
weblogic.servlet.jsp.JspBase
implements weblogic.servlet.jsp.StaleIndicator
{
// 注意,这是你用<%! %>定义的方法,你想怎么能直接引用request呢?
String get_Parameter(String value)
{
String result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}
.........................................
.........................................
public void _jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException
{
// 注意,预定义的对象在这个context里才能引用
// declare and set well-known variables:
javax.servlet.ServletConfig config = getServletConfig();
javax.servlet.ServletContext application = config.getServletContext();
javax.servlet.jsp.tagext.Tag _activeTag = null;
// variables for Tag extension protocol
Object page = this;
javax.servlet.jsp.JspWriter out;
javax.servlet.jsp.PageContext pageContext =
javax.servlet.jsp.JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true);
response.setHeader("Content-Type", "text/html; charset=GBK");
out = pageContext.getOut();
JspWriter _originalOut = out;
javax.servlet.http.HttpSession session = request.getSession(true);
try { // error page try block
response.setContentType("text/html;charset=GBK");
out.print("\r\n");
...............
...............
} catch (Throwable __ee) {
}
//before final close brace...
}
}
你在jsp中写的大部分代码都会出现到_jspService(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)方法里,这个方法里可以使用request,response,application等对象。而<%!...%>中定义的变量将作为类的成员变量出现,而定义的方法就作为一个独立的方法出现,这个方法里当然不能引用request等对象要引用的话,只能以参数形式传入
需要载入什么的吗????/
request 是JSP的内部对象,前提是你这个页面必须是JSP,另外你得先提交后,在提交后的页面才可以用的啊。
test.asp
<BODY>
<form action="hello.jsp" method="post">
<input type="text" name="myname">
<input type="submit" value="OK">
</form>
</BODY>
hello.asp用bean来接收参数
<%@ page contentType="text/html;charSet=GBK"%>
<%@ page import="bean.*"%>
<%
myBean a=new myBean(request,response);
out.println(a.getStr("myname"));
%>bean代码
package bean;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;public class myBean extends HttpServlet
{
private HttpServletRequest request;
private HttpServletResponse response; public myBean(HttpServletRequest req,HttpServletResponse res) throws IOException,ServletException{
this.request=req;
this.response=res;
} public String getStr(String obj){
return request.getParameter(obj);
}
}给我加分啊
<script language="javascript">
function get_Parameter(value)
{
var result = "";
if(request.getParameter(value)!=null)
result = request.getParameter(value).trim();
return result;
}
</script>
第二种方法:传request对象。因jsp内置对象在service方法中,自定义成员方法不可用。
个人理解:<%!....%>
改成<% %>
因为<%!...%>是静态区段,在加载过程中会被web应用放在application作用域中,而你在其中要取的request作用域的内容,所以会出问题。
作用域大小
page<request<session<application
所以他们的访问范围是:page>request>session>application即page中可以访问request变量,session变量 等等
而request就无法访问到page作用域的变量。
第一种方法:去掉!
第二种方法:传request对象。因jsp内置对象在service方法中,自定义成员方法不可用。
这是个好材料:默认的
JSP 中的内容都会在编译时写到 Servlet 一个方法里 , 你的所有 不带 ! 的东西都被认为 在这个方法里, 参数 method 就是用来指定这些内容是生成到 doPost 还是 doGet 方法里,
LZ 那个! 方法会被子放到 编译生成的方法 之外, 当然也就不能访问 内置对象, 因为内置对象也是生成的那个方法的局部变量.打开 Tomcat JSP 编译生成文件的目录 ( 在 %tomcat%/work 的你的 ServletContext 对应的子目录下面), 删除所有 _xxx.class ,然后打开网页,等它编译 , 当看到 .java 出来时,手脚要快, 赶快另存了(按住 Ctrl , 鼠标一拖). 然后打开来看看内容.
//这里面的东西,在JSP转译为Servlet时是,是类里面的类级别的东西。
//所以你这个函数根本不在 service(){}函数内,又怎么会可以使用request
//对象呢? 如果你要在这个函数中使用request,就必须在函数中增加(HttpServlet
//Request request),然后在<% %>中用参数request中调用这个方法。
%>