第一个Servlet + Jsp(eclipse下实现)

好久没有写代码了,都去写详细设计去了囧。

这次实现的是通过表单提交调用Servlet

首先在WebContent下新建一个jsp文件,注意,这里是不能在WEB-INF文件夹里面建的(如下图,WEB-INF里面的form.jsp不需要),否则待会配置web.xml是找不到目标的。


form.jsp代码如下

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<font size = "2">
		<form action = "AcceptForm" method = "post">
			name: <input type = "text" name = "name"/><br>
			province:<input type="text" name = "province"/><br>
			<input type = "submit" value= "submit">
		</form>
	</font>
</body>
</html>
主要就是在html页面里面有两个输入框,输入名字和省份


接着再New一个Class文件,就是java文件,name为AcceptForm.java。这时候新建的文件会自动映射到Java Resources/src下面,最好自己新建一个package,后面web.xml好修改,比如我就新建一个包bac,然后将java文件塞进去。代码如下

package bac;
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 AcceptForm extends HttpServlet{
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,
	ServletException
	{
		response.setContentType("text/html");
		response.setCharacterEncoding("gb2312");
		PrintWriter out = response.getWriter();
		String name = request.getParameter("name");
		String province = request.getParameter("province");
		
		out.println("<font size = '2'>");
		out.print("the content of the list is :<br>");
		out.print("name" + name + "<br>");
		out.print("province" + province + "<br>");
		out.print("</font>");
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
	{
		try {
			doGet(request, response);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
主要实现在doGet中,这个Servlet主要接收form页面传来的的name和province,然后再动态打印一个新的html页面,内容就是name和province啦。


第三步配置web.xml,我在新建的时候是默认没有这个文件的,于是我又新建了一个动态web项目,这时候勾选了下图的那个选项,然后把web.xml复制过来用,改改文件名就可以用啦。

web.xml文件的代码如下。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>firstTest</display-name>
  <servlet>
      <servlet-name>AcceptForm</servlet-name>
      <servlet-class>bac.AcceptForm</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>AcceptForm</servlet-name>
      <url-pattern>/AcceptForm</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>form.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

关键在于加入<servlet>和<servlet-mapping>两部分,下面的<welcome-file-list>中加入刚才第一个jsp页面form.jsp。这里的<welcome-file-list>是作为显示首页用的,如果有多个页面的时候,把想要显示的页面放到第一个就可以了,系统会自动从上到下扫描,扫描到的第一个作为首页。如果找不到就会报404错误,说什么resource not found。

运行,ok。

到现在还不是很明白jsp的代码规范和格式,整个框架也不很懂,所以一定有说的不对的地方,欢迎大家跟我讨论讨论。我的邮箱Oyang@whu.edu.cn。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值