新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Java, J2SE, J2ME, J2EE, 以及Eclipse, NetBeans, JBuilder等Java开发环境,还有JSP, JavaServlet, JavaBean, EJB以及struts, hibernate, spring, webwork2, Java 3D, JOGL等相关技术。
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Java/Eclipse 』 → Servlet/JSP的配置使用,原来这么简单! 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6801 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: Servlet/JSP的配置使用,原来这么简单! 举报  打印  推荐  IE收藏夹 
       本主题类别: Web Services    
     nbsven 帅哥哟,离线,有人找我吗?狮子座1984-8-7
      
      
      等级:大一新生
      文章:3
      积分:62
      门派:XML.ORG.CN
      注册:2009/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给nbsven发送一个短消息 把nbsven加入好友 查看nbsven的个人资料 搜索nbsven在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看nbsven的博客楼主
    发贴心情 Servlet/JSP的配置使用,原来这么简单!

    一、相关软件介绍
      1、 JDK:Java2的软件开发工具,是Java应用程序的基础。JSP是基于Java技术的,所以配置JSP环境

    之前必须要安装JDK。
        2、 UFO:最新发布的支持jsp的服务器软件,作为独立的Web服务器来使用。即支持静态页面、同时

    也支持动态页面,处理这两种页面都很迅速;而软件自身很健壮,不会出现内存泄漏和服务器自己宕掉的

    现象。对于初学者来说不用做任何部署配置环境变量的工作,简直可以说是初学者的首选。

    二、 软件下载

     1、JDK1.5.0
      版本:JDK1.5.0_16 (JDK1.5.0及以上版本都可以)
      地址:http://java.sun.com/javase/downloads/index_jdk5.jsp

      2、UFO 1.10
      版本:1.10(1.50MB)
        地址:http://www.gm365.com 主页面上

    三、软件的安装

      1、安装JDK1.5.0_16
         (1)、这个不用说大家都会,直接运行下载的jdk-1_5_0_16-windows-i586-p文件,根据安装向导安

    装到一个目录,例如安装到D:\DK1.5.0_16。
        (2)、不用添加环境变量,只需要做如下工作:
             a: Windows下,打开UFO中的bin目录,打开编辑setclasspath.bat文件插入一行:set

    JAVA_HOME=D:\jdk1.5.0_16

    (即把JAVA_HOME设置成JDK在您计算机上的安装目录),修改后敲startup.bat即可启动UFO;
             b: Linux下、打开bin目录下的setclasspath.bat文件,敲./startup.sh 即可直接启动UFO;

    四、Servlet/JSP在UFO中的使用(你会发现Servlet的使用原来这么简单)
      
       1、先拿个简单的单纯的Servlet来介绍。
       编写一个文件名为FirstServlet.java的Servlet,代码如下:

    package test;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class FirstServlet extends HttpServlet
    {
        public void doGet(HttpServletRequest request,HttpServletResponse response)throws

    ServletException,IOException
       {
         response.setContentType("text/html");
        PrintWriter out = response.getWriter();
         out.println("<html><head><title>");
         out.println("It's my first Servlet");
         out.println("</title></head><body>");
         out.println("<h1>welcome to use UFO!</h1>");
         out.println("</body></html>");
       
       }
    }
        在UFO的ROOT或是examples(当然也可以是webapps底下自己新建的)的WEB-INF/classes下新建个文件

    名为test的文件夹,将编译好的FirstServlet.class文件放入;启动UFO,如果class文件放置ROOT底下浏

    览器中输入http://localhost:80/servlet/test/FirstServlet,如果class文件放置examples底下浏览器

    中输入http://localhost:80/examples/servlet/test/FirstServlet,你就可以成功的看到几个超大的we

    lcome to use UFO!。
        说明:UFO中Servlet是不用在WEB-INF中的web.xml文件中注册的,UFO直接根据URL中的/servlet/认

    定,也就是说在UFO中如果要用到Servlet是需要在访问调用的Servlet前面加上一个标志符——servlet即

    可。
       2、 JSP中调用Servlet
        编写一个Servlet,用JSP调用这个Servlet来存储字符内容:
       a)、编写一个JSP文件ioFileServlet.jsp,用来写入文字内容,其代码如下:

    <%@ page contentType="text/html;charset=GB2312" %>
    <script language="javascript">
    function on_submit()
    {//验证数据的合法性
      if (form1.file_content.value == "")
        {
         alert("文件内容不能为空,请输入文件内容!");
         form1.file_content.focus();
         return false;
        }
    }
    </script>
    <HTML>
    <head>
    <title>提交文件内容</title>
    </head>
    <BODY>
    <div align="center">
      <center>
    <table border="1">
    <tr><td colspan="2" align="center">用servlet处理输入的文件内容</td></tr>
    <tr>
    <tr><td>
    <form name="form1" action="servlet/readdata/ioFileServlet" method="post" onsubmit="return

    on_submit()">
      请输入文件内容:
    </td><td>
    <textarea rows="7" name="file_content" cols="52"></textarea>
      </td></tr>
    <tr><td colspan="2" align="center"><input type="submit" value="提交"></td></tr>
    </form>
    </table>
      </center>
    </div>
    </html>

    再编写一个名为ioFileServlet.java的Servlet用来存储ioFileServlet.jsp中写入的内容:

    package readdata;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class ioFileServlet extends HttpServlet
    {  
    public String codeToString(String str)
      {//处理中文字符串的函数
        String s=str;
        try
          {
          byte tempB[]=s.getBytes("ISO-8859-1");
          s=new String(tempB);
          return s;
      }
      catch(Exception e)
        {
        return s;
        }
      }
      public void init(ServletConfig config) throws ServletException
        {
          super.init(config);
        }
      public  void  doPost(HttpServletRequest request,HttpServletResponse response)
                            throws ServletException,IOException
        {
           //设置mime
           response.setContentType("text/html;charset=GB2312");
           PrintWriter out=response.getWriter();
           out.println("<HTML><head><title>接收新用户注册</title></head><BODY>");
           //把提交的文件内容写入文件
           int RowSize=30;//文件每行的字符数
           String tempString1=null;
           String tempString2=null;
           tempString1=codeToString(request.getParameter("file_content"));
           if(tempString1!=null)
           {
             File tempFile1=new File("d:/fileContent.txt");
             FileWriter outfile1=new FileWriter(tempFile1,true);
             BufferedWriter outbuffer1=new BufferedWriter(outfile1);
             int writeStringLength=tempString1.length();
             for(int i=0;i<writeStringLength/RowSize+1;i++)
             {
               if((i+1)*20<writeStringLength)
               {
                 tempString2=tempString1.substring(i*RowSize,(i+1)*RowSize);
               }
               else
               {
                 tempString2=tempString1.substring(i*RowSize,writeStringLength);
               }
               outbuffer1.write(tempString2);
               outbuffer1.newLine();
             }
             outbuffer1.flush();
             outbuffer1.close();
             outfile1.close();
            }
           out.println("写入的文件内容是:<br>");
           //从文件中读取内容
           File f=new File("d:/fileContent.txt");
           if(f.exists())
           {  
             FileReader fileReader1=new FileReader(f);
             BufferedReader buffer1=new BufferedReader(fileReader1);
             byte bufferArray[]=new byte[90];
             String tempString=null;
             while((tempString=buffer1.readLine())!=null)
             {
               out.println(tempString+"<br>");
             }
             buffer1.close()
             fileReader1.close();
           }
           else
           {
             out.println("故事中暂时没有内容。");
           }
           out.println("</body> </html>");
        }
    }

    将ioFileServlet.jsp放置于examples底下,接着在examples的WEB-INF/classes下新建个文件名为readda

    ta的文件夹,将编译好的ioFileServlet.class文件放入,在浏览器中输入http://localhost:80/examples

    /ioFileServlet.jsp,你会看到等待你要输入内容的页面,提交之后便调用了Servlet文件ioFileServlet

    .class;如果你将ioFileServlet.jsp放置于examples/servlets/ioFileServlet底下,那么相应的在ioFi

    leServlet.jsp文件中要修改action为action="../../servlet/readdata/ioFileServlet",此时UFO默认的

    访问Servlet路径是http://localhost:80/examples/servlet/ioFileServlet/ioFileServlet,需要先返

    回到examples底下,所以用到了相对路径。

    五、 结束语
         UFO中的Servlet的使用两个字:“简单”。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    风吹鸡蛋壳,财去人安乐

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/5/12 14:07:00
     
     GoogleAdSense狮子座1984-8-7
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Java/Eclipse 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/11 18:39:00

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    93.750ms