• 使用MyEclipse搭建java Web项目开发


    转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217

    首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭建。

    1、安装工具

    第一步,下载并安装JDK,到官网上下载安装即可,之后需要细心的配置环境变量,我给大家推荐百度文库的一篇文章,猛戳这里。

    第二步,下载Tomcat,当然可以去Apache Tomcat的官网,同样,您可以移驾到我的资源下载,外送API文档(免资源分)。

    第三步,下载MyEclipse,MyEclipse官网,傻瓜式安装即可。

    =================================================================================

           这篇博文是为下篇博文(Servlet编写登录HTML页面和loginServlet)做铺垫的,配置中的名字起的不好,仅供参考。

    =================================================================================

             

    2、搭建Web项目开发环境

          然后,我们可以开始使用MyEclipse搭建java Web项目开发环境,只需要跟我一步步操作即可:

    1、新建MyEclipse的工作空间

                           

    2、选择工作空间的路径

                          

    3、建立我们的Web项目

                          

    4、输入Web项目的名称,我们使用的是J2EE1.4,Finish之后一定要选择No,如果选择Y的话,MyEclipse就能使用jdk1.5的环境了。

                          

                        

    5、此时我们的Web项目基本上就算完成了,下面这幅图,我们大家详细的介绍一下它的目录。

                       

    3、配置服务器

           虽然我们的Web项目建完了,但是此时不论是Html,还是Servlet,JSP都不能运行的,我们需要将他们部署到服务器上。服务器也叫Web容器,它就是一种所谓的中间件,Web容器实现了java的借口:servlet。Web容器启动之后一直运行,它时刻监听所有提交到它所监控的端口(默认:8080)的请求,并对此作出反映。

            我们使用的Tomcat,当然你也可以使用其他的(配置方式基本相同)。不管是什么服务器,就跟我们发布.net的web项目时需要配置IIS,并发布项目的道理是一样的。

          下面我们配置Tomcat:

    1、在菜单栏中找到window->preferences。配置Tomcat,选择Tomcat解压之后的路径即可。

                     

    2、Apply之后,配置JDK,添加上它的安装路径即可。                 

                    

                    

    3、此时我们的服务器就配置成功了,当我们需要运行项目是就可以部署我们的项目并启动,我们就可以在浏览器中使用了。

                  

                  

    servlet详解:

    Servlet是Sun公司提供的一门用于开发动态web网页的技术。Sun公司在API中提供了一个servlet接口,我们如果想使用java程序开发一个动态的web网页,只需要实现servelet接口,并把类部署到web服务器上就可以运行了。

    到底什么是Servlet呢?

           通俗一点,只要是实现了servlet接口的java程序,均称Servlet。Servlet是由sun公司命名的,Servlet = Server + Applet(Applet表示小应用程序),Servlet是在服务器端运行的小程序。

    编写一个现实登陆的Servlet,并部署访问

    1、我们先写一个简单的HTML,可以在WebRoot新建,也可以复制一个写好的HTML,我们用post提交方式,当然也可以用get提交,大家可以自己尝试一下。

    [html] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    2. <html xmlns="http://www.w3.org/1999/xhtml">  
    3.     <head>  
    4.     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
    5.         <title>登录</title>  
    6.     </head>  
    7.     <body>  
    8.           
    9.         <form action="http://localhost:8080/loginServlet/LoginServlet" method="post">  
    10.             用户:<input type="text" name="username" /><br/>  
    11.             密码:<input type="password" name="password" /><br/>  
    12.             <input type="submit" value="登录" />  
    13.               
    14.         </form>  
    15.     </body>  
    16. </html>  


    2、完成Servlet,在Web项目的src中右键新建一个类LoginServlet,输入下面代码即可。

    [java] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. //引入所需要的包  
    2. import java.io.*;  
    3. import javax.servlet.*;  
    4. import javax.servlet.http.*;  
    5.   
    6. public class LoginServlet extends HttpServlet {  
    7.     //重写doGet方法  
    8.     public void doGet(HttpServletRequest request,  
    9.             HttpServletResponse response)  
    10.      throws ServletException,  
    11.             IOException {  
    12.         String username = request.getParameter("username");     
    13.         String password = request.getParameter("password");        
    14.           
    15.         //服务器端打印信息  
    16.         //System.out.println("username=" + username);  
    17.         //System.out.println("password=" + password);  
    18.         //设置编码格式  
    19.         response.setContentType("text/html;charset=GB18030");  
    20.           
    21.         //返回html页面  
    22.         response.getWriter().println("<html>");  
    23.         response.getWriter().println("<head>");     
    24.         response.getWriter().println("<title>登录信息</title>");      
    25.         response.getWriter().println("</head>");    
    26.         response.getWriter().println("<body>");     
    27.         response.getWriter().println("欢迎【" + username + "】用户登录成功!!!");    
    28.         response.getWriter().println("</body>");    
    29.         response.getWriter().println("</html>");  
    30.         }                     
    31.     //重写doPost方法  
    32.     public void doPost(HttpServletRequest request,  
    33.             HttpServletResponse response)  
    34.     throws ServletException,  
    35.             IOException {  
    36.         doGet(request, response);                     
    37.     }       
    38. }  


    3、在WebRoot下的WEB-INF的web.xml,部署我们的Servlet,启动服务器。

    [html] view plain copy
     
     print?在CODE上查看代码片派生到我的代码片
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app version="2.4"   
    3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
    5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
    7.       
    8.     <servlet>  
    9.         <servlet-name>MyServlet</servlet-name>  
    10.         <servlet-class>LoginServlet</servlet-class>  
    11.     </servlet>  
    12.   
    13.     <servlet-mapping>  
    14.         <servlet-name>MyServlet</servlet-name>  
    15.             <url-pattern>/LoginServlet</url-pattern>  
    16.     </servlet-mapping>  
    17. </web-app>  


    4、一定要启动服务器,之后在浏览器中输入你的URL,此时我们就可以调用Servlet了,我们看一下运行结果。

                 

                 

           实例的demo:http://download.csdn.net/detail/jiuqiyuliang/7593641

    ==============================================================================================================================

     如果不知道怎么配置java Web项目,可以移驾到我的上篇博客(一步步教你使用MyEclipse搭建java Web项目开发环境(一)),下面我们详细介绍Servlet的基础知识。

    ==============================================================================================================================

    Servlet基础

    1、解读API文档,纯手工编写一个Servlet程序,并部署访问(如上所示)。

             

          解读API对于拒绝学习API的程序员们是一种煎熬,但它却是我们学习和进步的最好工具,且学且珍惜。

                            

           大家可以在点进去看一看,从上图,可以看出Servlet接口定义三个实现类,分别是FacesServlet, GenericServlet, HttpServlet。下面我们简单的介绍一下。

    2、Servlet接口实现类

         

         (1)FacesServlet是一个用于管理利用JSF(JavaServer Faces)构建用户界面的web应用程序请求处理生命周期的Servlet。(FacesServletis a servlet that manages the request processing lifecycle for web applications that are utilizing JavaServer Faces to construct the user interface.),大家如果想深入的学习,可以点这里

         (2)GenericServlet是HttpServlet的父类,包含了servlet的常用方法。GenericServlet使得程序员写servlets更加简单,它提供了初始化和销毁生命周期的方法,以及实现了写日志文件的方法。

         (3)HttpServlet指能够处理HTTP请求的servlet。这是开发人员在编写Servlet时,通常应继承这个类即可。

          

            对于这三个实现类,只为大家做一个简单的介绍,如果想深入的研究,直接看API就好。

    3、Servlet部署

           

           客户端通过URL地址访问web服务器中的资源,所以若想访问Servlet必须要把servlet程序映射到一个URL地址上,在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成,如上面的实例。

            *<servlet>用于注册Servlet,包含了<servlet-name>和<servlet-class>两个子元素,分别用于设置servlet的名称以及servlet的类名。

            *<servlet-mapping>用于映射上面<servlet>中的对外访问路径,同样包含<servlet-name>和<url-pattern>两个元素,分别用于设置servlet的名称以及servlet的对外访问路径。

            在servlet映射到URL有两种格式:

            1.“*.扩展名”

            2.以正斜杠(/)开头并以“/*”结尾。

            servlet对url的匹配规则以及路径问题,大家可以上网查,有很多相关的资料,例如:http://blog.csdn.net/xh16319/article/details/8014107

                 

    4、Web服务器调用Servlet过程(Servlet生命周期)

         

          servlet程序是由web服务器调用,web服务器实现了对servlet生命周期的管理。servlet的生命周期分为四步:

              1)实例化以及加载servlet,new的过程。

              2)初始化init(ServletConfig)。

              3)处理请求,调用servlet的service,doget,dopost方法将Request和Response,作为参数传递。

              4)退出服务,调用destory方法释放资源。

              

     注意:

             1、servlet只实例化一次。感觉有点单例模式的意思,大家可以研究一下Tomcat的实现原理。

             2、init方法也只执行一次。servlet实例只创建一次,所以init初始化只调用一次。

    5、Servlet线程安全问题

           当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用service方法,因此,service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。大家重点理解下面两句即可:
    (1) Servlet是单实例多线程的,如果存在可以修改的成员变量将会出现线程安全问题。
    (2) 使用Servlet最好保证Servlet是无状态的,也就是没有可以修改的成员变量。

  • 相关阅读:
    通过mixins方法处理调取服务器时间
    记录个人对vuex的简单理解
    利用弹性布局实现垂直居中
    vue.set的适用方法
    深拷贝和浅拷贝的实现方法
    Maven安装步骤
    build tools
    Git
    Url和Uri的区别
    函数式编程语言
  • 原文地址:https://www.cnblogs.com/lee-mj/p/5165271.html
Copyright © 2020-2023  润新知