您的位置:首页 > 编程语言 > Java开发

MyEclipse+JBoss开发部署jsp和servlet入门

2017-08-27 23:30 471 查看
首先在MyEclipse里创建一个Web Project, 命名为HelloWeb。然后在HelloWeb项目下添加一个hello.jsp页面和一个HelloServlet类。目录结构见下图(application.xml和build.xml是后来手动添加的文件):



编写hello.jsp如下:

[html] view
plain copy

<%@ page import="java.text.*,java.util.*"%>  

<HTML>  

  <BODY>  

    <%  

      Date d = new Date();  

      String hoy = DateFormat.getDateInstance().format(d);  

    %>  

    Hello world! Now the date is:  

    <EM> <%= hoy %> </EM>  

  </BODY>  

</HTML>  

配置application.xml如下,其中web-uri tag的值需要和project deploy后的war包名字保持一致。

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>  

<application>  

  <display-name>Hello demo</display-name>  

  <module>  

    <web>  

      <web-uri>HelloWeb.war</web-uri>  

      <context-root>/HelloWeb</context-root>  

    </web>  

  </module>  

</application>  

如果现在deploy project,就可以通过http://localhost:8080/HelloWeb/hello.jsp来访问hello.jsp页面了。稍后再做详细解释。

编写HelloServlet.Java如下:

[html] view
plain copy

package com.servlet;  

  

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 HelloServlet extends HttpServlet {  

  

    public void doGet(HttpServletRequest request, HttpServletResponse response)  

        throws ServletException, IOException {  

        PrintWriter out = response.getWriter();  

        out.println("Hello World");  

    }  

  

}  

配置web.xml文件如下:

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>  

<web-app version="2.5"   

    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_2_5.xsd">  

    

  <servlet>  

    <servlet-name>Hello</servlet-name>  

    <servlet-class>com.servlet.HelloServlet</servlet-class>  

  </servlet>  

    

  <servlet-mapping>  

    <servlet-name>Hello</servlet-name>  

    <url-pattern>/servlet/hello</url-pattern>  

  </servlet-mapping>  

    

</web-app>  

在MyEclipse Preferences里配置Jboss服务器见下图。只需选择JBoss home的目录和JBoss Server name。



部署project可以通过点击“Deploy MyEclipse J2ee Project to Server”按钮打开project deployment对话框来完成。在下图中的对话框里点击Add按钮,选择上面配置好的JBoss服务器,再点击OK按钮即可完成部署工作。



在%JBOSS_HOME%\bin下执行run.bat(如何有必要,需添加相应启动参数),或者在MyEclispe的工具栏上点击“Run\Stop\Restart MyEclipse Server"按钮即可启动JBoss服务器。

在浏览器里通过http://localhost:8080/HelloWeb/hello.jsp即可访问JSP页面,见下图:



在浏览器里通过http://localhost:8080/HelloWeb/servlet/hello即可访问相应的servlet,见下图:



对于HelloWeb Project我们可以删除apllication.xml文件,用同样的URL来访问JSP页面和servlet。对于默认的web.xml一般会有welcome-file-list标签,如何将welcome-file的值设置成hello.jsp,那么我们可以直接用http://localhost:8080/HelloWeb来访问hello.jsp页面(原来的URL仍然有效)。URL里的HelloWeb就是deploy到JBOSS_DEPLOY目录下WAR包的名字。

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>  

<web-app version="2.5"   

    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_2_5.xsd">  

      

  <welcome-file-list>  

    <welcome-file>hello.jsp</welcome-file>  

  </welcome-file-list>  

  

  <servlet>  

    <servlet-name>Hello</servlet-name>  

    <servlet-class>com.servlet.HelloServlet</servlet-class>  

  </servlet>  

    

  <servlet-mapping>  

    <servlet-name>Hello</servlet-name>  

    <url-pattern>/servlet/hello</url-pattern>  

  </servlet-mapping>  

    

</web-app>  

有关URL的context-root的设置可以参考http://blog.csdn.NET/henry_yqh/article/details/8435412

对于HelloWeb Project的编译部署,我们还可以借助ant来完成。在HelloWeb根目录下新建一个build.xml文件,如下:

[html] view
plain copy

<project name="HelloWeb" default="all" basedir=".">  

  

  <property environment="env"/>  

  <property name="home.dir" location="${env.JBOSS_HOME}"/>  

  

  <property name="source.dir" value="${basedir}/src"/>  

  <property name="app.name" value="HelloWeb"/>  

  <property name="app.root" value="${basedir}/WebRoot"/>  

  <property name="app.server.root" value="${home.dir}/server/vtba"/>    

  

  <property name="temp.dir" value="${basedir}/temp"/>  

  

  <path id="classpath">  

    <pathelement location="${env.CLASSPATH}"/>  

    <pathelement location="${home.dir}/server/vtba/lib/servlet-api.jar"/>  

  </path>  

      

  <target name="all" depends="deploy"/>  

  

  <target name="compile" depends="clean">  

    <mkdir dir="${app.root}/WEB-INF/classes"/>  

    <javac debug="on" srcdir="${source.dir}" destdir="${app.root}/WEB-INF/classes" classpathref="classpath"/>  

  </target>  

  

  <target name="clean">  

    <delete failonerror="false" includeemptydirs="true">  

      <fileset dir="${app.root}/WEB-INF/classes"/>  

      <fileset file="${app.name}.jar"/>  

    </delete>  

  </target>  

      

  <target name="makeBundle" depends="compile">  

    <jar destfile="${app.name}.war" manifest="${app.root}/META-INF/MANIFEST.MF">            

      <fileset dir="${app.root}"/>  

    </jar>      

  </target>  

      

  <target name="deploy" depends="makeBundle">  

    <copy file="${app.name}.war"   

      tofile="${app.server.root}/deploy/${app.name}.war" overwrite="true"/>  

  </target>  

  

</project>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: