第一个servlet程序、配置web.xml以及使用html表单给服务器传输数据

一、Serlvet简介

serlvet是一个服务器小程序,它可以对用户的请求(request)作出响应(response)。

举个例子,当我们在html页面填写一个表单时,我们点击提交,这就能发送一个请求,服务器可以接收到我们的请求然后执行相应的servlet程序来作出响应。

html表单发送请求:
在这里插入图片描述
响应结果:
在这里插入图片描述
浏览器/服务器模式(B/S)图示:

在这里插入图片描述

二、如何创建第一个servlet程序

要使用servet程序,你需要先确保你已正确配置好服务器(例如Tomcat)。

1.打开eclipse,新建一个动态web项目,我这里将其命名为了test
在这里插入图片描述
2.在创建好的项目下的src文件夹下创建一个Servlet
在这里插入图片描述
3.这时需要指定一个包名(Java package),我们不妨写servlets,还需要一个Class name,我们不妨起名为Test,之后点击Next,再点击Next
在这里插入图片描述
4.勾选所需要的方法,我们这里只需要勾选前两项以及doGet和goPost,之后点击Finish
在这里插入图片描述
5.这样servlet程序就创建好了,接下来我们需要编辑我们的servlet程序,这里我们只要删除这样一句话:

@WebServlet("Test")

这句话的功能是让eclipse帮我们做一些服务器配置,但我们希望自己去做配置,所以应该把这句话删除,不然的话就是eclipse已经帮我们配置好了,我们再去配置的话,如果我们配置的一些东西和eclipse帮我们配置的一些东西不一致的,就可能产生服务器错误。总之,我们先把这句话删除吧。

三、配置web.xml文件

1.找到web.xml文件并双击打开
在这里插入图片描述
2.如果你的web.xml是这样显示的,那请点击左下角的Source
在这里插入图片描述
3.添加如下代码

  <servlet>
  	<servlet-name>Test</servlet-name><!-- 这里写你给servlet程序起的别名,不妨就和servlet程序名一样-->
  	<servlet-class>servlets.Test</servlet-class><!-- 这里写你的servlet程序的所在包名加.servlet程序名-->
  </servlet>
  <servlet-mapping>
 	<servlet-name>Test</servlet-name><!-- 这里写你之前给你的servlet程序起的别名,一般和上面的servlet-name标签下的内容一致-->
 	<url-pattern>/test</url-pattern><!-- 这里是给你的servlet程序配一个访问地址,注意加/ --> 
  </servlet-mapping>

这样的话你的web.xml看上去应该像这样
在这里插入图片描述
这样就配置好了

四、测试servlet程序

我们现在可以编写一个html或者jsp来生成一个表单,当我们点击提交表单时,将请求传给servlet程序,然后希望servlet程序给我们一些响应。这里以html为例。

1.在项目的WebContent文件夹下新建一个html文件
在这里插入图片描述
2.编写html文件为,其中form标签的action属性值为之前在web.xml配置好的访问地址(这里不需要加/),method属性值使用get

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style>
	input{
		display: block;
	}
</style>
<body>
	<form action="test" method="get">
		用户名<input type="text" name="UserName">
		Email<input type="text" name="Email">
		通信地址<input type="text" name="address">
		个人简历<input type="text" name="resume">
		<input type="submit" value="提交">
	</form>
</body>
</html>

3.之后将你的项目部署到服务器,启动服务器再访问你的html,不出意外你将看到这样的界面:(如果你不知道如何将你的项目部署到服务器,你可以查看这篇文章的第5点)
在这里插入图片描述
4.输入信息,点击提交之后,将会调用你的serlvet程序。

在这里插入图片描述
出现了这样的信息,这是因为我们还没有重写serlvet程序的doGet方法,我们一般需要重写serlvet程序,让serlvet程序能返回一个有意义的结果,例如让它输出我们输入的用户名。

五、重写serlvet程序的doGet方法

1.找到我们的serlvet程序,双击打开
在这里插入图片描述
2.重写doGet方法为下图所示,这个方法功能仅仅就是将用户输入的用户名输出,你也可以根据自己的需求来重写你自己的doGet方法

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html ; charset = gb2312");//防止中文乱码
		String UserName = request.getParameter("UserName");//获得用户输入的用户名
		
		//将用户名输出至网页上
		PrintWriter out = response.getWriter();
		out.println(UserName);
	}

六、重启服务器,重新访问html,提交表单看效果

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值