Java WEB基础

要想发布Java web页面需要以下几个步骤:

<1> : 安装java虚拟机,并且配置环境变量;

<2> : 安装tomcat服务器(一般用非安装版),并且配置环境变量,初学可以不需要设置其具体配置参数;

<3> : 下载j2ee版eclipse,网上很多推荐myeclipse(这个没用过,不清楚是否好用),j2ee eclipse仅仅用于写code方便的,和自动生成class文件的,

不需要其运行.

<4> : 下面用eclipse编写java web工程所需要的html,jsp,servlet的java文件,编写完成后,在将其相关文件发布的tomcat的webapps文件夹下:

eclipse新建动态网页工程,下面的文件都通过eclipse新建相关文件产生.

eclipse 会把jsp,html自动放到webcontent文件夹下

login.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>helloapp</title>
</head>
<body>
<form name="loginForm" method="POST" action="DispatchServlet">
<table>
<tr>
<td><div align="right">User Name : </div></td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td><div align="right">Password : </div></td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="submit"></td>
<td><input type="reset" name="reset" value="reset"></td>
</tr>
</table></form>
</body>
</html>

hello.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>helloapp</title>
</head>
<body>
<b>Hello: <%=request.getAttribute("USER") %></b>
</body>
</html>

DispatchServlet.java (此处放在mypack包中咯),eclipse会自动将java文件放到java resource文件夹下(有包就继续放在包下)

package mypack;

import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class DispatchServlet
 */
public class DispatchServlet extends GenericServlet {
    private static final long serialVersionUID = 1L;
    private String target="/hello.jsp";
    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        
        request.setAttribute("USER", username);
        request.setAttribute("PASSWORD", password);
        
        ServletContext context=getServletContext();
        RequestDispatcher dispatcher=context.getRequestDispatcher(target);
        dispatcher.forward(request, response);
    }
      
   
}

web.xml : eclipse大部分都已经根据上面的新建html,servlet文件自动生成了,不过welcome-file-list下需要调整,似乎不能够定位login.html

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>helloapp</display-name>
  <welcome-file-list>
    <welcome-file>login.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>DispatchServlet</display-name>
    <servlet-name>DispatchServlet</servlet-name>
    <servlet-class>mypack.DispatchServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DispatchServlet</servlet-name>
    <url-pattern>/DispatchServlet</url-pattern>
  </servlet-mapping>
</web-app>

要想在tomcat服务器发布,并且运行显示效果:
就要知道发布需要的文件和文件夹相关文件的位置关系:

<1> : 总体web发布都是放在tomcat安装目录下的C:\Tomcat 6.0\webapps文件夹下;

<2> : 如果要发布上面helloapp工程,即在webapps文件夹下新建文件夹目录如下:

helloapp----WEB-INF(文件夹)---------------------classes(文件夹)+web.xml---------------包文件夹(此处为mypack)------------------把class文件放在此目录下.

    ----src(文件夹,这个非必须)-----------------包文件夹(此处为mypack)----------------java source code放在此文件夹下.

    ----在helloapp文件夹下直接把html,jsp文件

<3> : 放置好上面的内容,就可以在浏览器输入 : http://localhost:8080/helloapp/login.html

输入用户名和密码,然后点击提到(submit按钮),就可以看到页面显示用户名.

注意:

<4> : 正式工程发布时,一般打包成war文件,操作如下:

1.启动dos,定位路径到<2>中的helloapp目录下,不过一般不要在tomcat目录下进行,打包时上层目录名不能够存在空格,

所以还是改一个地方打包,比如在C盘下新建web文件夹,让后把<2> 中的helloapp整个文件夹拷贝到web文件夹下,

让后dos路径定位到c:\web\helloapp目录下,让后再输入: C:\web\helloapp>jar cvf C:\web\helloapp.war *.*

然后dos即会显示:

标明清单(manifest)
增加:hello.jsp(读入= 405) (写出= 274)(压缩了 32%)
增加:login.html(读入= 550) (写出= 252)(压缩了 54%)
忽略项 META-INF/
忽略项 META-INF/MANIFEST.MF
增加:src/(读入= 0) (写出= 0)(存储了 0%)
增加:src/mypack/(读入= 0) (写出= 0)(存储了 0%)
增加:src/mypack/DispatchServlet.java(读入= 1172) (写出= 456)(压缩了 61%)
增加:WEB-INF/(读入= 0) (写出= 0)(存储了 0%)
增加:WEB-INF/classes/(读入= 0) (写出= 0)(存储了 0%)
增加:WEB-INF/classes/mypack/(读入= 0) (写出= 0)(存储了 0%)
增加:WEB-INF/classes/mypack/DispatchServlet.class(读入= 1456) (写出= 743)(压缩
了 48%)
增加:WEB-INF/lib/(读入= 0) (写出= 0)(存储了 0%)
增加:WEB-INF/web.xml(读入= 785) (写出= 319)(压缩了 59%)

即可以在web目录下产生一个helloapp.war文件,将此文件拷贝到tomcat的webapps目录下(删除前面的helloapp文件夹),然后在浏览器输入

http://localhost:8080/helloapp/login.html,效果和上面是一样的.

但是要注意:tomcat服务器会自动展开helloapp.war压缩包,并且生成helloapp文件夹.

 

最后强调: 上面的文件路径不是绝对这样的,其实开发只要会定义路径变量,可以放在自定义目录下.

 

posted @ 2013-11-21 00:28  MMLoveMeMM  阅读(401)  评论(0)    收藏  举报