求JSP怎么将表单提交到对应的servlet,具体情况见补充

我的文件结构目录如下:webapps--SSC--src--ch04--(这是一个包)servlet--login.javaWebroot--WEB-INF--class... 我的文件结构目录如下:
webapps--
SSC--
src--
ch04--(这是一个包)
servlet--
login.java
Webroot--
WEB-INF--
classes--
login.class
web.xml
login.jsp

login.jsp中有一个登录验证的表单,其中的action = "????"才可以提交到servlet对应的类中,web.xml文件中应该怎么配置?还有就是到底是提交到src下的.java,还是WEB-INF/classes下的.class?
还有就是浏览器下直接定位到那个servlet/login,路径如下:localhost:8000/SSC/src/ch04/servlet/Login 出现404错误 我知道是servlet没布置好,新手求教。。。请给出对应我这个例子的解决方案。。万分感激(实际只有30分,不好意思)!!!!
展开
 我来答
奧巴馬是我
推荐于2016-07-18 · TA获得超过1324个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:209万
展开全部

问了回答你的问题,我还特意打开了我的myeclipse6.5。给你一个完整的例子

要做成一个完整的servlet的例子,做以下几个事

1、新建JSP文件(访问servlet的),我这里是index.jsp

2、新建java类(servlet),我这里是MyServlet.java

3、在web.xml配置servlet

 下面给出完整代码

1、index.jsp  (可以把我的代码自己拷贝到你机器运行,拷贝到的目录没有要求)

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

    

    <title>My JSP 'index.jsp' starting page</title>

 <meta http-equiv="pragma" content="no-cache">

 <meta http-equiv="cache-control" content="no-cache">

 <meta http-equiv="expires" content="0">    

 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

 <meta http-equiv="description" content="This is my page">

 <!--

 <link rel="stylesheet" type="text/css" href="styles.css">

 -->

  </head>

  

  <body>

     <form action="servletUrl">

        <input type="text" name="yyf"/>

        <input type="submit" value="submit"/>

     </form>

  </body>

</html>

2、MyServlet.java,代码如下(现在你的src目录下建一个test包,然后这个类放到这个包下面)

package test;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class MyServlet extends HttpServlet {

 

 public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  response.setContentType("text/html");

  PrintWriter out = response.getWriter();

  

  System.out.println("this is doGet");

  

  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

  out.println("<HTML>");

  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

  out.println("  <BODY>");

  out.print("    This is ");

  out.print(this.getClass());

  out.println(", using the GET method");

  out.println("  </BODY>");

  out.println("</HTML>");

  out.flush();

  out.close();

 }

 

 public void doPost(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  response.setContentType("text/html");

  PrintWriter out = response.getWriter();

  

  System.out.println("this is doPost");

  

  out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

  out.println("<HTML>");

  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

  out.println("  <BODY>");

  out.print("    This is ");

  out.print(this.getClass());

  out.println(", using the POST method");

  out.println("  </BODY>");

  out.println("</HTML>");

  out.flush();

  out.close();

 }

  

 public void init() throws ServletException {

   

 }

 

 

 public MyServlet() {

  super();

 }

  

 public void destroy() {

  super.destroy(); // Just puts "destroy" string in log

  // Put your code here

 }

}

3、web.xml配置(这里把握整个web.xml代码放到这里,你可以看的更清楚)

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 

 xmlns="http://java.sun.com/xml/ns/javaee"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ;

 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";>

 

  <servlet>

    <servlet-name>MyServlet</servlet-name>

    <servlet-class>test.MyServlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>MyServlet</servlet-name>

    <url-pattern>/servletUrl</url-pattern>

  </servlet-mapping>

  

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

对于index.jsp访问MyServlet.java的解释:

在表单中,当你点击提交按钮,触发这个链接action="servletUrl"。请求到达服务器tomcat后,tomcat检查当前项目的web.xml中所有的<servlet-mapping></servlet-mapping>

配置中的<url-pattern></url-pattern>的属性值。看当中有没有一个和请求地址servletUrl相同。结果找到如,如下:

  <servlet-mapping>

      <servlet-name>MyServlet</servlet-name>

      <url-pattern>/servletUrl</url-pattern>

  </servlet-mapping>

   其中  <url-pattern>/servletUrl</url-pattern>  是你表单的访问地址

然后,tomcat根据上面的<servlet-name>MyServlet</servlet-name>找到和

<servlet-mapping>相对应的<servlet>配置如下

 <servlet>

    <servlet-name>MyServlet</servlet-name>

    <servlet-class>test.MyServlet</servlet-class>

  </servlet>

然后根据当中 <servlet-class>找到MyServlet.java文件的地址。

如果看了上面的文字还不是很理解,给你做个图:

yujingtaojing
2011-04-09 · TA获得超过467个赞
知道小有建树答主
回答量:1108
采纳率:0%
帮助的人:491万
展开全部
action=“你的servlet的url”
web.xml中要写servlet映射参数什么servlet-name servlet-class servlet-mapping,等等,找本书看看,书上写的清清楚楚。你肯定有书的,应该。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
549433950
2011-04-09 · TA获得超过167个赞
知道答主
回答量:41
采纳率:0%
帮助的人:55.6万
展开全部
在web.xml中有如下配置
- <servlet>
<description />
<display-name>Login</display-name>
<servlet-name>Login</servlet-name>
<servlet-class>ch04.servlet.login.java</servlet-class>
</servlet>
- <servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
- <servlet>

在你的jsp页面中的配置如下:

<form action="<%=request.getContextPath()%>/Login" method="post">

然后你直接使用eclipse之类的运行一下就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淡泊还风雅的帮手9101
2011-04-09 · 超过21用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>
<!-- 打开login.java,选中类名,右击,在弹出菜单选择copy qualified name -->
SSC.ch04.shopping.servlet.login
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
上面是web.xml的部分配置。

IE中输入地址:localhost:8000/SSC,回车就可以进入登录页面了。
登录页面的表单:action="Login"就可提交到相应的servlet了,就是login.java。
从你给的路径看,这应该是书上的例子吧?好好看书,别浪费你那30分了。这个问题不难。看看书就懂了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式