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

我的文件结构目录如下:
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分,不好意思)!!!!

问了回答你的问题,我还特意打开了我的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文件的地址。

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-09
action=“你的servlet的url”
web.xml中要写servlet映射参数什么servlet-name servlet-class servlet-mapping,等等,找本书看看,书上写的清清楚楚。你肯定有书的,应该。
第2个回答  2011-04-09
在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之类的运行一下就好了。
第3个回答  2011-04-09
<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分了。这个问题不难。看看书就懂了。

JSP怎么将表单提交到对应的servlet
1. 用于登录的jsp页面,其中有一个form表单用于提交用户名和密码 2. 创建一个名为LoginServlet的Servlet,下面是doGet与doPost部分 3. 配置web.xml,这是最关键的一步 需要注意的是url-pattern这里写的是\/login,而在jsp中form表单的action写的是login,而不是\/login,因为尝试了其他写法都不...

在jsp页面中如何传递一个删除的参数给servlet页面
1、对于该JSP页面 form表单的内容,如 标签,在 servlet可用request.getParameter("username");获取。2、URL:比如这里的 标签的 href属性与 标签的 action属性的值 "JspServlet?action=toServlet",在 servlet同样用 request.getParameter("action")获取;所要注意的是这里的 url要和 servlet在web.xml里...

通过JSP 页面调用servlet方法?

jsp中action怎么提交到Servlet?
在form的action中直接写在web.xml中配置的的名字。例如:AdminLogincom.java.servlet.AdminLogin22AdminLogin\/AdminLogin在form的action中就直接写AdminLogin就行了。<form method="post" action<"???">想把这个表单中的action提交到自己创建的java程序包中,该怎么访问呀?com.java.servlet.AdminLogin.j...

通过JSP 页面调用servlet方法?
1、首先,在软件开发平台新建web项目命名为combineJsp。2、其次,按照图示代码在WEB-INF下新建web.xml文件,设置默认主页路径。3、在index.jsp文件中引入子文件sub.jsp,具体引入代码见下图红色方框。4、按照图示代码在page文件夹下新建子文件sub.jsp,用于index.jsp文件引入。5、在servers下的tomcat服务器...

请问:jsp页面 表单怎样提交大量数据到serverlet 如用for循环生成一个100...
你可以创建一个对象用于封装你的数据,然后用request.getParameter("标签名") ;来获取你表单中的数据,然后把你获取的数据封装到实体对象中.然后在存储你的数据到数据库或者别的.

servlet和jsp之间的数据传递,帮帮忙!
比如加密前的是 code1 加密后是 code2 servlet拿到code1之后加密处理生成code2,然后 request.setAttribute('code1', code1);request.setAttribute('code2', code2);跳转页面;页面接收 参数一 = (String)request.getAttribute('code1');参数二 = (String)request.getAttribute('code2');...

JSP中怎么可以做到既提交了表单中的数据,又跳转到另一个页面?_百度知 ...
JSP中提交表单的同时页面跳转是通过servlet控制的。RequestDispatcher.forward()是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 ...

如何从jsp通过post方式发送xml数据到servlet
2.servlet package servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class GetXml extends HttpServlet { private static final long ser...

jsp button提交一个值到servlet
你应该写了form表单了吧,你既然只传一个id就不要表单了,button的 onclick='test(<%=rs.getInt("id") %>)' 这个id值就是你要传的值 在javascript里写test的方法test(i){ location.href="XXServlet?id="+val;}就可以传递到你的servlet里了,你在servlet的int i=Integer.parseInt(req...

相似回答