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

浙公网安备 33010602011771号