精华内容
下载资源
问答
  • Web Services中关键点

    2018-08-17 16:10:23
    目录 Web Services 1、Web Services简介 1.1 Web Services是什么 1.2 它如何工作 1.3 Web Services平台元素 ...2.2 Web Services两种类型的应用 2.2.1 可重复使用应用程序组件 2.2.2 连接现...

    目录

    Web Services

    1、Web Services简介

    1.1 Web Services是什么

    1.2 它如何工作

    1.3 Web Services平台的元素

    2、使用Web Services原因

    2.1 Web Services将web应用程序提升到另外一个层面

    2.2 Web Services两种类型的应用

    2.2.1 可重复使用的应用程序组件

    2.2.2 连接现有软件

    3、Web Services平台元素

    3.1 什么是SOAP

    3.2 什么是WSDL

    3.3 什么是UDDI


    Web Services

    1、Web Services简介

    1.1 Web Services是什么

    • 应用程序组件
    • 使用开放协议进行通信
    • 独立的(self-contained)并可自我描述
    • 可通过使用UDDI来发现
    • 可被其他应用程序使用
    • XML 是 Web Services 的基础

    1.2 它如何工作

    基础的 Web Services 平台是 XML + HTTP。

    HTTP 协议是最常用的因特网协议。

    XML 提供了一种可用于不同的平台和编程语言之间的语言。

    1.3 Web Services平台的元素

    • SOAP (简易对象访问协议)
    • UDDI (通用描述、发现及整合)
    • WSDL (Web services 描述语言)

    2、使用Web Services原因

    2.1 Web Services将web应用程序提升到另外一个层面

    通过使用 Web services,您的应用程序可向全世界发布功能或消息。

    Web services 使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。

    通过 Web services,您的会计部门的 Win 2k 服务器可与 IT 供应商的 UNIX 服务器进行连接。

    2.2 Web Services两种类型的应用

    2.2.1 可重复使用的应用程序组件

    有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?

    Web services 可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。

    比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。

     

    2.2.2 连接现有软件

    通过为不同的应用程序提供一种链接其数据的途径,Web services有助于解决协同工作的问题。

    通过使用 Web services,您可以在不同的应用程序与平台之间来交换数据。

    3、Web Services平台元素

    3.1 什么是SOAP

    基本的 Web services 平台是 XML + HTTP。

    • SOAP 指简易对象访问协议
    • SOAP 是一种通信协议
    • SOAP 用于应用程序之间的通信
    • SOAP 是一种用于发送消息的格式
    • SOAP 被设计用来通过因特网进行通信
    • SOAP 独立于平台、语言
    • SOAP 基于 XML
    • SOAP 很简单并可扩展
    • SOAP 允许您绕过防火墙
    • SOAP 将作为 W3C 标准来发展

    3.2 什么是WSDL

    WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

    • WSDL 指网络服务描述语言
    • WSDL 使用 XML 编写
    • WSDL 是一种 XML 文档
    • WSDL 用于描述网络服务
    • WSDL 也可用于定位网络服务
    • WSDL 还不是 W3C 标准

    3.3 什么是UDDI

    UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。

    • UDDI 指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
    • UDDI 是一种用于存储有关 web services 的信息的目录。
    • UDDI 是一种由 WSDL 描述的网络服务接口目录。
    • UDDI 经由 SOAP 进行通迅。
    • UDDI 被构建于 Microsoft .NET 平台之中
    展开全文
  • 目录第一节 SpringMVC入门1.1 简介1.2 入门案例第一步:创建一个javaweb项目,导入相关jar包第二步:在web.xml配置DispatcherServlet第三步:在WEB-INF目录下创建DispatcherServlet-servlet.xml第四步:配置...

    第一节 SpringMVC入门

    1.1 简介

    • MVC

      • M:Model
      • V:View
      • C:Controller - servlet/action/controller
    • Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其它bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。

    • Spring MVC主要由DispatcherServlet、处理器映射【找控制器】、适配器【调用控制器的方法】、控制器【业务】、视图解析器、视图组成。

    1.2 入门案例

    第一步:创建一个javaweb项目,导入相关jar包

    在这里插入图片描述
    在这里插入图片描述

    • 导入后记得Add as Library
      在这里插入图片描述

    第二步:在web.xml配置DispatcherServlet

    在这里插入图片描述

    	<!--配置:所有的请求由SpringMVC管理-->
        <servlet>
            <servlet-name>DispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>DispatcherServlet</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    

    第三步:在WEB-INF目录下创建DispatcherServlet-servlet.xml

    • 注意该文件默认读取的位置就在WEB-INF目录下,且文件名固定
      在这里插入图片描述
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    		http://www.springframework.org/schema/mvc
    		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
    		http://www.springframework.org/schema/context
    		http://www.springframework.org/schema/context/spring-context-3.2.xsd
    		http://www.springframework.org/schema/aop
    		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
    		http://www.springframework.org/schema/tx
    		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    
    </beans>
    
    

    第四步:配置DispatcherServlet-servlet.xml

    在这里插入图片描述

    	<!-- 1.配置url处理器映射,SpringMVC默认的处理器映射
    		BeanNameUrlHandlerMapping:根据bean的name属性的url去找handlerController -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
        <!-- 2.配置处理器适配器执行Controller -->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
        <!-- 3.配置一个控制器:相当于配置访问路径-->
        <bean name="/user.do" class="com.it.web.controller.UserController"/>
        <!-- 4.配置SpringMVC资源视图解析器
            视图解析器解析的路径为:前缀 + 后缀 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    

    第五步:在src下创建个Controller控制器

    在这里插入图片描述

    package com.it.web.controller;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * @ClassName UserController
     * @Author shuyy
     * @Date 2020/10/5 20:09
     **/
    public class UserController implements Controller {
    
        @Override
        public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
    
            //返回jsp的视图
            ModelAndView modelAndView = new ModelAndView("/user/userList");//拼接访问路径
    
            //设置数据让jsp页面获取
            modelAndView.addObject("name","shu");
    
            return modelAndView;
        }
    }
    
    

    第六步:创建一个userList.jsp页面

    • 在jsp页面取控制器保存的数据
      在这里插入图片描述

    第七步:运行项目

    在这里插入图片描述

    1.3 SpringMVC的执行流程

    在这里插入图片描述

    1.4 URL处理器映射【三种方式】【了解】

    • URL处理映射:就是通过访问路径找到对应的控制器

    第一种:BeanNameUrlHandlerMapping

    • 功能:寻找Controller,根据url请求去匹配bean的name属性,从而获取Controller
      在这里插入图片描述

    第二种:SimpleUrlHandlerMapping

    • 功能:寻找Controller,根据浏览器的url匹配简单url的key,key就是Controller的id,从而找到Controller
      在这里插入图片描述
    • 此时访问user.do、user1.do…user3.do都可以访问到
      在这里插入图片描述

    第三种:ControllerClassNameHandlerMapping

    • 功能:寻找Controller,根据类名(UserController)类名.do来访问,类名首字母小写
      在这里插入图片描述
      在这里插入图片描述
    • 如果在控制器里保留了name的配置,由于配置了第一种,通过user.do也能访问到
      在这里插入图片描述
    • 当然,如果保留id和name,再解开第二种的注释,那么以上的访问路径(user.do、user1.do…user3.do、userController.do)都可以访问到
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    		http://www.springframework.org/schema/mvc
    		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
    		http://www.springframework.org/schema/context
    		http://www.springframework.org/schema/context/spring-context-3.2.xsd
    		http://www.springframework.org/schema/aop
    		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
    		http://www.springframework.org/schema/tx
    		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    
    
        <!-- 1.配置url处理器映射,SpringMVC默认的处理器映射
    		第一种:BeanNameUrlHandlerMapping:根据bean的name属性的url去找handlerController -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    
        <!--第二种:SimpleUrlHandlerMapping:简单的url处理映射,通过key找到bean的id的控制器-->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/user1.do">userController</prop>
                    <prop key="/user2.do">userController</prop>
                    <prop key="/user3.do">userController</prop>
                </props>
            </property>
        </bean>
    
        <!--第三种:ControllerClassNameHandlerMapping:通过控制器的类名处理映射,
            不用配置访问路径,默认的访问路径就是类名-->
        <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
    
        <!-- 2.配置处理器适配器执行Controller -->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
        <!-- 3.配置一个控制器:相当于配置访问路径 id="userController" name="/user.do" -->
        <bean id="userController" name="/user.do" class="com.it.web.controller.UserController"/>
        <!-- 4.配置SpringMVC资源视图解析器
            视图解析器解析的路径为:前缀 + 后缀 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
    </beans>
    
    

    1.5 控制器处理器适配器

    第一种:SimpleControllerHandlerAdapter

    在这里插入图片描述

    • 最终由SimpleControllerHandlerAdapter来调用控制器

    • 功能:执行controller,调用controller里面方法,返回modelAndView

    • 简单控制器处理适配器源码

      • 里面会调用handle方法处理请求,将handler转换成控制器调用handleRequest,里面传入request、response
        在这里插入图片描述

    第二种:HttpRequestHandlerAdapter

    • 执行控制器,负责调用实现HttpRequestHandler接口的控制器
      在这里插入图片描述
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    		http://www.springframework.org/schema/mvc
    		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
    		http://www.springframework.org/schema/context
    		http://www.springframework.org/schema/context/spring-context-3.2.xsd
    		http://www.springframework.org/schema/aop
    		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
    		http://www.springframework.org/schema/tx
    		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    
    
        <!-- 1.配置url处理器映射,SpringMVC默认的处理器映射
    		第一种:BeanNameUrlHandlerMapping:根据bean的name属性的url去找handlerController -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    
        <!--第二种:SimpleUrlHandlerMapping:简单的url处理映射,通过key找到bean的id的控制器-->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/user1.do">userController</prop>
                    <prop key="/user2.do">userController</prop>
                    <prop key="/user3.do">userController</prop>
                    <prop key="/http1.do">http</prop>
                </props>
            </property>
        </bean>
    
        <!--第三种:ControllerClassNameHandlerMapping:通过控制器的类名处理映射,
            不用配置访问路径,默认的访问路径就是类名-->
        <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
    
        <!-- 2.配置处理器适配器执行Controller -->
        <!--调用controller里面的方法,返回modelAndView-->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
        <!--负责调用HttpRequestHandler接口的控制器-->
        <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
    
        <!-- 3.配置一个控制器:相当于配置访问路径 id="userController" name="/user.do" -->
        <bean id="userController" name="/user.do" class="com.it.web.controller.UserController"/>
        <bean id="http" name="/http.do" class="com.it.web.controller.HttpController"/>
    
        <!-- 4.配置SpringMVC资源视图解析器
            视图解析器解析的路径为:前缀 + 后缀 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/views"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
    </beans>
    
    
    • 还需要在src下写个HttpController类
      在这里插入图片描述
    package com.it.web.controller;
    
    import org.springframework.web.HttpRequestHandler;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * @ClassName HttpController
     * @Author shuyy
     * @Date 2020/10/6
     **/
    public class HttpController implements HttpRequestHandler {
        @Override
        public void handleRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //使用原始的方法
            request.setAttribute("name","shu1");
    
            //转发(使用这种方法就要自己写好路径)
            request.getRequestDispatcher("/WEB-INF/views/user/userList.jsp").forward(request,response);
        }
    }
    
    
    • 访问http.do和http1.do都可以(但是访问httpController.do访问不到)
      在这里插入图片描述
    • 查看HttpRequestHandlerAdapter源码,与简单处理适配器类似,调用了handle方法,但是返回null
      在这里插入图片描述

    注意:上面两种处理器适配器可以共存

    1.6 命令控制器【了解】

    • SpringMVC通过命令设计模式接受页面参数
    • 以下这种方式一般不使用,这里只是了解一下底层原理

    第一步:先写一个简单的表单页面

    • userAdd.jsp
      在这里插入图片描述
    <form action="${pageContext.request.contextPath}/command.do" method="post">
        用户名:<input type="text" name="username"><br>
         密码: <input type="text" name="password"><br>
         性别: <input type="text" name="gender"><br>
         生日: <input type="text" name="birthday"><br>
        <input type="submit">
    </form>
    

    第二步:写一个User模型来装数据

    • User.java,并为属性提供get/set、toString
      在这里插入图片描述

    第三步:写一个UserAddController控制器来显示表单

    在这里插入图片描述

    第四步:写一个CommandController控制器来接收表单参数

    • AbstractCommandController是一个过时的方法,这里只是了解一下它的底层使用原理,一般不使用这种方式
      在这里插入图片描述
    package com.it.web.controller;
    
    import com.it.model.User;
    import org.springframework.validation.BindException;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractCommandController;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * @ClassName CommandController
     * @Author shuyy
     * @Date 2020/10/6
     **/
    public class CommandController extends AbstractCommandController {
    
        //指定哪个bean来接收参数
        public CommandController(){
            //告诉SpringMVC把表单数据存入User模型中
            this.setCommandClass(User.class);
        }
        @Override
        protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response,
                                      Object command, BindException e) throws Exception {
            //将command对象转成User对象
            User user = (User) command;
            //查看从表单传来的User信息
            System.out.println(user);
            ModelAndView modelAndView = new ModelAndView();
            //将从表单写的user信息传入
            modelAndView.addObject("user",user);
            //返回显示到jsp页面
            modelAndView.setViewName("/user/info");
            return modelAndView;
        }
    }
    
    

    第五步:再写一个jsp页面用于显示从控制器获取表单的信息

    • info.jsp
      在这里插入图片描述
    <%--从控制器中取数据--%>
    用户信息<br>
    用户名:${user.username}<br>
    密码:${user.password}<br>
    性别:${user.gender}<br>
    生日:${user.birthday}<br>
    

    第六步:在DispatchServelt-sevlet.xml中配置控制器

    在这里插入图片描述

    <bean name="/userAdd.do" class="com.it.web.controller.UserAddController"/>
    <bean name="/command.do" class="com.it.web.controller.CommandController"/>
    

    第七步:运行项目

    • 在表单页面输入信息后
      在这里插入图片描述
    • 提交后从控制器中取数据回显到info.jsp页面
      在这里插入图片描述
    • 后台打印的是在页面上输入进表单中的信息
      在这里插入图片描述

    日期问题

    • 将birthday改成Date类型重写get/set
      在这里插入图片描述
    • 将表单中的birthday也改成date类型
      在这里插入图片描述
    • 此时日期的格式就必须是默认格式:yyyy/MM/dd,其它格式接收参数会为空
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    日期类型转换

    • SpringMVC默认接收的日期格式为:yyyy/MM/dd,如果要添加其它格式,只需要重写一个方法(这里暂不使用注解)
    • 直接在CommandController中手动重写一个initBinder方法
      在这里插入图片描述
    	@Override
        protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder){
            String birthday = request.getParameter("birthday");
            if (birthday.contains("/")){
                binder.registerCustomEditor(Date.class,
                        new CustomDateEditor(new SimpleDateFormat("yyyy/MM/dd"),true));
            }else {
                binder.registerCustomEditor(Date.class,
                        new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
            }
        }
    
    • 效果
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    post请求乱码问题

    在这里插入图片描述

    • 中文乱码
      在这里插入图片描述
      在这里插入图片描述
    • 后台也是
      在这里插入图片描述
    • 在web.xml中配置编码过滤器即可
      在这里插入图片描述
    • 顺便查看一下CharacterEncodingFilter源码
      在这里插入图片描述
    	<!--post请求配置编码过滤器-->
        <filter>
            <filter-name>EncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
    
        <filter-mapping>
            <filter-name>EncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    
    • 配置完成后,再次提交,乱码解决
      在这里插入图片描述
      在这里插入图片描述

    get请求乱码问题

    • Tomcat8 默认进行了url编码,get请求不乱码,Tomcat7会乱码
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    • 解决方法(可以通过换成Tomcat8来解决,也可以用下面的方法)
      在这里插入图片描述

    • 修改Tomcat/conf/server.xml文件,在connector标签中添加一个URIEncoding="UTF-8"属性:
      在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 用Tomcat构建WEB站点

    千次阅读 2012-10-15 19:58:29
    第1讲 用Tomcat构建WEB站点 ...应用程序:指允许用户执行特定任务软件程序,主要分为桌面应用程序和Web应用程序两种类型。 桌面应用程序(DesktopApplication):一般是指采用客户机/服务器结构(Client/Server

    第1讲 用Tomcat构建WEB站点

    WEB应用的相关知识

    安装 Tomcat

    Tomcat 的启动与停止

    配置WEB站点的虚拟目录 

    配置虚拟主机 

    Web应用程序简介

    应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。

    桌面应用程序(DesktopApplication):一般是指采用客户机/服务器结构(Client/Server)的应用程序。

    C/S模式将应用与服务分离,系统具有稳定性和灵活性

    C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性

    由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快

    在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂

    Web应用程序(Web Application)

    Web应用程序一般是指采用浏览器和服务器结构(Browser/Server,简称B/S结构)的应用程序。

    Web应用程序由Web服务器和Web客户端组成。

    Web服务器:Web服务器上装有某个应用程序,这个Web服务器应用程序负责接收客户请求进行处理,向客户返回结果

    Web客户端:允许用户请求服务器上的某个资源,并且向客户端返回结果。Web应用程序的客户端一般是指Web浏览器。Web浏览器就是一个软件,它知道怎么与服务器通信,它还有一个重要任务,就是解释HTML代码,把Web页面呈现给用户

    B/S模式的优点:

        (1)易于维护:基于B/S模型的系统当需要升级或维护时,只需修改服务器程序即可。

        (2)易于实现。B/S模型的表现层可以用制作网页的html来实现,浏览器和网页设计技术已经相当成熟。而且用Java技术开发的Web系统可以安装在任意一种服务器系统平台上,也就是常说的具有跨平台性。

        (3)使用方便,无论客户在什么地方,只要服务器正在运行,客户就能通过网络进行连接,实现对数据的访问和操作。

    URL:Uniform Resource Locator(统一资源定位符)

           例如,http://www.it315.org:80/java/index.html

    主要的WEB服务器软件

           IIS、Apache 、Tomcat

    WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。

    Internet上供外界访问的Web资源分为:

    静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。

    动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

    静态web资源开发技术

    Html

    常用动态web资源开发技术:

    JSP/Servlet、ASP、PHP等

    在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。

    Tomcat官方站点:http://jakarta.apache.org

    获取Tomcat安装程序包

           tar.gz文件是Linux操作系统下的安装版本

           exe文件是Windows系统下的安装版本

           zip文件是Windows系统下的压缩版本

    安装Tomcat

    双击 bin 目录下的 startup.bat 文件

    输入http://localhost:8080/,显示如下界面代表安装成功

    Java_home环境变量

    在windows中设置java_home环境变量

    只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。

    端口占用问题:netstat -na命令和fport工具(可以查看有哪些网络端口号被监听)

     

    WEB应用程序指供浏览器访问的程序,通常也简称为web应用。

     

    一个web应用由多个静态web资源和动态web资源组成,如:

    html、css、js文件

    Jsp文件、java程序、支持jar包、

    配置文件等等…..

    组成web应用的这些文件通常我们会使用一个目录组织,这个目录称之为web应用所在目录。

     

    Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。

    补充知识点:映射缺省web应用。

    注意:一个Context即代表一个web应用,context元素在配置文件中除用于映射虚似目录外,它还可用于为web应用配置一些资源,例如:配置web应用使用的数据库连接池,javamail session等(这些本配置以后会用到)。

    2、在Tomcat6中,不再建议在server.xml文件中配置context元素,(需要重启服务器) 细节查看tomcat服务器关于context元素的说明。

    3、让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。

    Web.xml文件是整个web应用中最重要的配置文件,它必须放在WEB-INF目录中。在开发web应用时,但凡涉及到对web应用中的web资源进行配置,通通是在web.xml文件中进行设置。例如:

    某个web资源配置为网站首页

    将servlet程序映射到某个url地址上

    为web应用配置监听器

    为web应用配置过滤器

    ……

    认识web.xml文件的作用:

    通过web.xml文件把某个web资源配成网站首页。

    部署描述符文件

    <WEB应用程序>/WEB-INF/web.xml

    <Tomcat主目录>/conf/web.xml

    目录的默认网页文件

           <welcome-file-list>

                  <welcome-file>index.html</welcome-file>

                  <welcome-file>index.htm</welcome-file>

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

           </welcome-file-list>

    在一个tomcat服务器中可以放置多个网站,所谓配置虚似主机,就是在tomcat服务器中配置一个网站。

     

    如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:

           <Hostname=”site1” appBase=”c:\app”></Host>

     

    配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。

     

    配置多个网站。

     

    缺省虚似主机。

     

    展开全文
  • 基本概念理解绝对路径:绝对路径就是你主页上文件完整URL或文件目录在硬盘上真正路径,它主要包括完整URL和物理路径两种类型。例如:C:\xyz\test.txt 代表了test.txt文件在本地硬盘绝对路径。也...

    转自:http://wwwdd2315.blog.163.com/blog/static/66661889201091953350298/

    在JAVA文件中获取该项目的相对路径

    1.基本概念的理解

    绝对路径:绝对路径就是你主页上的文件的完整URL或文件目录在硬盘上的真正的路径,它主要包括完整URL和物理路径两种类型。

    例如:C:\xyz\test.txt 代表了test.txt文件在本地硬盘的绝对路径。也代表了一个URL绝对路径。

    相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的跟目录;和物理路径的相对表示,例如:"./" 代表当前目录,"../"代表上级目录。这种类似的表示,也是属于相对路径。

    2.关于JSP/Servlet中的相对路径和绝对路径。

    2.1服务器端的地址

    服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,它们是由客户端浏览器解析的),也就是说这时候,在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://192.168.0.1/webapp/的。

    其用到的地方有:

    forward:servlet中的request.getRequestDispatcher(address); 这个address是在服务器端解析的,所以,你要forward到a.jsp应该这么 写:request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp,其绝对地址就 是:http://192.168.0.1/webapp/user/a.jsp。

    sendRedirect:在jsp中

    2.2、客户端的地址

    所有的html页面中的相对地址都是相对于服务器根目录(http://192.168.0.1/)的,而不是相对跟目录下的该Web应用的目录(http://192.168.0.1/webapp/)的。Html中的form表单的action属性的地址应该是相对于服务器根目录(http://192.168.0.1/)的,所以,如果提交到a.jsp为:action="/webapp/user/a.jsp"或action="./user/a.jsp;提交到servlet为actiom="/webapp/handleservlet"

    Javascript也是在客户端解析的,所以其相对路径和form表单一样。

    因此,一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等 属性前面最好都加上,或者在头文件中定义一下如:,然后每个jsp都包含该头文件,使用的时候就可以直接用EL表达式${ctxPath},以确保所引用的文件都属于Web应用中的目录。另 外,应该尽量避免使用".","./","../../"等类似的相对该文件位置的相对路径,这样当文件移动时,很容易出问题。

    3. JSP/Servlet中获得当前应用的相对路径和绝对路径

    3.1 JSP中获得当前应用的相对路径和绝对路径

    根目录所对应的绝对路径:request.getRequestURI()

    文件的绝对路径  :application.getRealPath(request.getRequestURI());

    当前web应用的绝对路径 :application.getRealPath("/");

    取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

    3.2 Servlet中获得当前应用的相对路径和绝对路径

    根目录所对应的绝对路径:request.getServletPath();

    文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())

    当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");

    (ServletContext对象获得几种方式:

    javax.servlet.http.HttpSession.getServletContext()

    javax.servlet.jsp.PageContext.getServletContext()

    javax.servlet.ServletConfig.getServletContext()

    )

    4.java 的Class中获得相对路径,绝对路径的方法

    4.1单独的Java类中获得绝对路径,根据java.io.File的Doc文挡,可知:默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。

    一下程序获得执行类的当前路径

    public class FileTest {

    public static void main(String[] args) {

    System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));

    System.out.println(FileTest.class.getClassLoader().getResource(""));

    System.out.println(ClassLoader.getSystemResource(""));

    System.out.println(FileTest.class.getResource(""));

    System.out.println(FileTest.class.getResource("/")); // Class文件所在路径

    System.out.println(new File("/").getAbsolutePath());

    System.out.println(System.getProperty("user.dir"));

    }

    }

    4.2服务器中的Java类获得当前路径(来自网络)

    (1).Weblogic

    WebApplication的系统文件根目录是你的weblogic安装所在根目录。例如:如果你的weblogic安装在c:\bea\weblogic700.....

    那么,你的文件根路径就是c:\. 所以,有两种方式能够让你访问你的服务器端的文件:

    a.使用绝对路径:

    比如将你的参数文件放在c:\yourconfig\yourconf.properties,直接使用 new FileInputStream("yourconfig/yourconf.properties");

    b.使用相对路径:

    相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放在yourwebapp\yourconfig\yourconf.properties,

    这样使用:new FileInputStream("./yourconfig/yourconf.properties");

    这两种方式均可,自己选择。

    (2).Tomcat

    在类中输出System.getProperty("user.dir"); 显示的是%Tomcat_Home%/bin

    (3).Resin

    你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET,的路径为根.比如用新建文件法测试File f = new File("a.htm");

    这个a.htm在resin的安装目录下

    (4).如何读相对路径哪?

    在Java文件中getResource或getResourceAsStream均可, 例:getClass().getResourceAsStream(filePath); //filePath可以是"/filename",这里的/代表web

    发布根路径下WEB-INF/classes, 默认使用该方法的路径是:WEB-INF/classes。

    展开全文
  • WEB应用

    2012-10-23 20:40:23
    用Tomcat构建WEB站点 ...•应用程序:指允许用户执行特定任务软件程序,主要分为桌面应用程序和Web应用程序两种类型。 •桌面应用程序(Desktop Application):一般是指采用客户机/服务器结
  • 应用程序:指允许用户执行特定任务软件程序,主要分为桌面应用程序和Web应用程序两种类型。桌面应用程序(Desktop Application):一般是指采用客户机/服务器结构(Client/Server)应用程序。 C
  • java获取web文件相对路径

    千次阅读 2019-01-02 20:05:59
     绝对路径:绝对路径就是你主页上文件完整URL或文件目录在硬盘上真正路径,它主要包括完整URL和物理路径两种类型。 例如:C:\xyz\test.txt 代表了test.txt文件在本地硬盘绝对路径。 ...
  • SpringMVC控制层的返回类型形式多样,现拿其中的两种--String类型与Bean类型作以说明。 一、测试项目的结构 说明:(jsp的名字没起好) 控制层:UserController.java --对用户的相关操作; 视图层:toFormTest...
  •  绝对路径:绝对路径就是你主页上文件完整URL或文件目录在硬盘上真正路径,它主要包括完整URL和物理路径两种类型。 例如:C:\xyz\test.txt 代表了test.txt文件在本地硬盘绝对路径。 ...
  • 文章目录一、简介1、Web Worker类型可以分为两种2、Web Worker使用场景3、Web Worker限制4、Worker上下文二、专用线程(Dedicated Web Worker)1、线程创建2、线程数据通讯方式3、关闭 Worker4、错误处理5、加载...
  • 将所用的web页面程序放置在这个模块中进行统一管理和调用,一个web模块中一般包括所有创建页面程序以及XML部署文件和jar包文件(将零散文件打包成JAR类型的压缩文件)等。 关于服务器如何找到相应域名下服务器下...
  • 在其他类型动态页面文档中 目前有3种类型嵌入标签可用: <%c %>标签表示嵌入一段服务端执行js脚本 如:<body><%c response responseText+ "hello js"%>< body> 将返回页面<...
  • SSH 为 Struts+Spring+Hibernate一个集成框架,是目前较流行种Web应用程序开源框架。其中使用Struts作为系统整体基础架构,负责MVC分离,在Struts框架模型部分,控制业务跳转,利用Hibernate框架对持久...
  • HTTP连接的两种类型 采用带有流水机制的持久性连接使得http通信时效率更高。 具体的http信息 http请求信息 http请求消息的通用格式 http响应消息 Cookie技术 cookie原理 cookie的问题:隐私问题 cookie时代...
  • 14、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色; 15、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务执行, 多个子任务用逗号分隔; 16、运行报表:支持...
  •  绝对路径:绝对路径就是你主页上文件完整URL或文件目录在硬盘上真正路径,它主要包括完整URL和物理路径两种类型。 例如:C:\xyz\test.txt 代表了test.txt文件在本地硬盘绝对路径。 ...
  • 应用程序:指允许用户执行特定任务软件程序,主要分为桌面应用程序和Web应用程序两种类型。桌面应用程序(Desktop Application):一般是指采用客户机/服务器结构(Client/Server)应用程序。
  • 文章目录Web应用Web、网页、urlHTTP协议概述HTTP连接的两种类型HTTP报文格式请求消息响应消息CookieWeb缓存 Web应用 Web、网页、url HTTP协议概述 HTTP连接的两种类型 给定一个网址,访问这个网址经过了那些过程...
  • maven开发web项目

    千次阅读 2018-07-15 19:35:03
    初步接受maven项目,创建maven项目1、选择新建,选择maven project2、选择workspace路径3、选择项目类型,一般用到两种,java项目和web项目java项目web项目4、建好之后,可能会少几个目录资源目录,可以新建5、...
  • 您可以选择默认样式、无索引或者两种类型的索引方式。如果不希望访客看到您目录文件,请选择不编入索引。今天我们讲是cPanel索引管理器禁止目录浏览,也是为了网站安全。第一步:登录cPanel管理后台 第...
  • SSO-WebDemo

    2013-08-12 20:25:57
    如果举例说国内一著名IT公司(名字隐去),内部共有60多个业务系统,这些系统包括个不同版本SAPERP系统,12个不同类型和版本数据库系统,8个不同类型和版本操作系统,以及使用了3不同防火墙技术,...
  • jenkins pipeline类型

    2020-05-25 17:34:43
    新建任务-选择流水线时,会有两种类型的配置 1.1 pipeline script:直接在Web UIscript输入框里面输入pipeline script语句即可,参考说明可以点击输入框下边Pipeline Syntax,里面有很多示例操作说明,非常好用...
  • HTTPListener与Socket两种方式差异 附带Demo源码概述 Demo效果截图 总结 介绍 本篇文章主要介绍使用HTTPListener类型自己动手创建一个Web Server,创建的Web Server能够接收来自浏览器端HT...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 420
精华内容 168
关键字:

web目录的两种类型