第一个Java Web项目

        因为工作需要,必须先学J2EE了。第一个J2ee项目,用于学习J2ee项目的基本结构。

       功能:hello.jsp,post数据到HelloServlet,HelloServlet处理后返回给hello.jsp.

先上配置文件:WEB-INF/web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	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_3_0.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>HelloServlet</servlet-name>
  	<servlet-class>pocketdigi.HelloServlet</servlet-class>
  </servlet>
  <!-- servlet名和该servlet完整类名 -->
  <servlet-mapping>
  	<servlet-name>HelloServlet</servlet-name>
  	<url-pattern>/hello</url-pattern>
  </servlet-mapping>
  <!-- servlet名和访问该servlet的URL -->
</web-app>

通过上面的配置文件,可以看到,访问HelloServlet的URL是hello.HelloServlet在包pocketdigi内.
在包内建一个类(或者说JavaBean),User.java:

package pocketdigi;
 
public class User {
	private String userName;
 
	public String getUserName() {
		return userName;
	}
 
	public void setUserName(String userName) {
		this.userName = userName;
	}
 
}

新建一个类,HelloServlet.java:

package pocketdigi;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class HelloServlet extends HttpServlet {
 
	/**
	 * 
	 */
	private static final long serialVersionUID = 3972665671318178043L;
 
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		String userName=req.getParameter("username");
		User user=new User();
		user.setUserName(userName);
		req.setAttribute("user", user);
		//设置待传属性,属性名必须与接收的jsp文件中jsp:useBean标签的id属性相同
		RequestDispatcher dispatcher=req.getRequestDispatcher("/hello.jsp");
		dispatcher.forward(req, resp);
		//把user传送给hell.jsp,这里并不是简单的重定向,注意地址栏,还是Servlet的hello,而不是hello.jsp
 
 
	}
 
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(req, resp);
	}
 
}

hello.jsp 源代码(wp-syntax插件好像不支持JSP高亮显示):

<%@ page language="java" pageEncoding="UTF-8"%>
<jsp:useBean id="user" scope="request" class="pocketdigi.User"></jsp:useBean>
<%--jsp:useBean指令用于在jsp页面中创建一个JavaBean实例,这里就是创建pocketdigi.User的实例
id为JavaBean名,即对象名,class为类名,scope是作用范围,有4个值:request,session,page,application,默认是page。
因为我们需要从Servlet把user通过HttpServletRequest传到这,所以设为request.
这里会自动接收从HelloServlet传过来的user
 --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'hello.jsp' starting page</title>
  </head>
<body>
	<%
		//上面的jsp:useBean指令已经定义user
		if (user.getUserName() != null && !user.getUserName().equals("")) {
			out.println("您好," + user.getUserName());
		}
	%>
	<form action="hello" method="post">
		用户名:<input type="text" name="username" /><br /> <input type="submit"
			value="提交" />
	</form>
</body>
</html>
     以下是我捡起来的:
            部署到服务器,看效果。另外,MyEclipse建立项目的时候,不需要把工作空间设置成Tomcat的webapps目录,我之前一直搞不清,导致部署的时候提示已经部署。其实随便放哪都行,点部署的时候,MyEclipse会把整个项目自动部署到webapps目录,而且修改代码后不需要重新手动部署。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值