您的位置:首页 > 编程语言 > Java开发

前台传数据到后台的HelloWorld程序

2015-12-19 23:44 288 查看
初学Javaweb,当我们在前台页面输入信息时,有可能会郁闷怎么让后台收到信息并处理,今天我就写个小例子给有困惑的同学演示一下。

首先我要先介绍下servlet,servlet 就是用Java编写的服务器端程序,用来完成B/S架构下客户端请求的响应处理。servlet一般运行在容器中,比如tomcat、jetty等。

其次我要再说一下web应用程序,web应用程序必有WEB-INF文件夹,文件夹下必有lib和classes文件夹,当然我还会习惯性的加上web.xml文件,虽然这个文件在新的servlet规范里已经不是必须的了。使用MyEclipse可以方便的创建工程,并不需要的手动的在tomcat里创建文件和文件夹。当然创建工程时,不要输入完工程名后就直接点Finish,耐心的点完next,勾上创建web.xml的那个选项即可。

明白了一些基本概念后,下面我们就可以写一个HelloWorld程序了。

首先向大家展示下我的工程目录



接着我们要配置下web.xml里的文件,去apache-tomcat-x.x.xx\webapps\examples\WEB-INF目录下找到web.xml,在下面复制一对<servlet> </servlet><servlet-mapping></servlet-mapping>,并做相应的修改,我的修改完之后是这个样子的 <servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
其中servlet-name里的名字是随便取的,但是他servlet和servlet-mapping里的servlet-name必须一致,servlet-class里的内容是要编写的servlet程序,由于我没有写在包里,所以这里面的内容就直接是类的名字,如果这个类要放在了包里,我们就要把相应的包名加上,url-pattern里是要输入的url地址。

其实通熟的讲上面这个配置的意思就是客户端敲一个什么地址的时候,需要用到咱们这个servlet来处理客户端的请求。

配置好web.xml后我们就先来写一个简单的servlet程序,程序要想要响应客户端的请求需要继承一个抽象的父类即httpServlet,因为绝大多数情况下servlet只用来拓展基于HTTP协议的Web服务器,所以我们不讨论其他servlet父类接口。接着我们重写doget方法,这个方法是用来处理客户端get请求的一个方法,当然我们要知道doget这个方法不是我们自己写程序调用的,而是客户端的请求过来了tomcat在适当的时候自动调用这个方法。我的程序如下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 HelloWorld extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("<html><body>Hello World</body></html>");
out.flush();
out.close();
}

}
输入地址,查看结果,如下图所示



接着我们写一个form表单来测试下,前台输入参数,后台接收参数的例子,下面我就不累述了,大家可以直接复制测试即可,在index.jsp,修改代码如下 <body>
<form action="/Servelet_0100_helloworld/helloworld" method=get>
<input type="text" name="username">
<input type="submit" value="提交">
</form>
</body>输入地址结果如下,并在输入框里输入1



下面我们修改刚才的servlet程序,直接讲输入的1打印出来,代码如下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 HelloWorld extends HttpServlet {

<span style="white-space:pre"> </span>private static final long serialVersionUID = 1L;

<span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>protected void doGet(HttpServletRequest req, HttpServletResponse resp)
<span style="white-space:pre"> </span>throws ServletException, IOException {
<span style="white-space:pre"> </span>PrintWriter out = resp.getWriter();
<span style="white-space:pre"> </span>out.println("<html><body>hello world</body></html><br/>");
<span style="white-space:pre"> </span>out.println(req.getParameter("username"));
<span style="white-space:pre"> </span>out.flush();
<span style="white-space:pre"> </span>out.close();
<span style="white-space:pre"> </span>}

}
点击提交按钮后,我们可以观察到输出结果如下图所示



这样一个完整的前台到后台传数据的程序就完成了,希望大家有所收获
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息