【发布时间】:2014-03-10 08:47:43
【问题描述】:
这是我的 Jsp 文件
<body>
<%
URL url = new
URL("http://localhost:8080/ServletToCloud/JSPToServletToCloudServlet");
URLConnection conn =url.openConnection();
conn.setDoOutput(true);
BufferedWriter bw= new BufferedWriter( new OutputStreamWriter(
conn.getOutputStream() ) );
bw.write("username= Shanx");
out.flush();
out.close();
%>
</body>
这是我的 servlet 类
@SuppressWarnings("serial")
public class JSPToServletToCloudServlet extends HttpServlet
{
private final static String _USERNAME = "username";
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
String username = request.getParameter(_USERNAME);
response.setContentType("text/html");
out.println("HelloWorld");
out.println("Hello " + username);
out.close();
}
这是 web.xml 文件
<servlet>
<servlet-name>JSPToServletToCloud</servlet-name>
<servlet-class>pack.exp.JSPToServletToCloudServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>JSPToServletToCloud</servlet-name>
<url-pattern>/jsptoservlettocloud</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
我的 Jsp 文件位于动态 Web 应用程序中,并且正在向 Web 应用程序项目中的 Servlet 发送一个字符串。我在 apache tomcat 服务器上运行动态 Web 应用程序项目,在服务器启动后,我将我的 Web 应用程序项目作为 Web 应用程序运行并检查本地主机并获得空值。
帮帮我。
【问题讨论】:
-
您的 Servlet 中有
doPost方法吗?由于conn.setDoOutput(true);,您的 JSP 代码应该发出 POST 请求。 -
[这是一篇不错的帖子][1] [1]:stackoverflow.com/questions/2793150/…你应该先搜索一下。希望这会有所帮助
-
@Sotirios Delimanolis 是的,我尝试过使用 doPost,它也只给出 null
-
这是因为您从未在请求中发送
"username"参数... -
@ Luiggi Mendoza :为此我必须写“localhost:8080/ServletToCloud/…”,尝试后我仍然得到空值