java web 订阅
Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。 展开全文
Java Web,是用Java技术来解决相关web互联网领域的技术栈。web包括:web服务端和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。
信息
优    点
上手快速并且相对容易
主要框架
使用Servlet或者Filter拦截请求
包    括
web服务器和web客户端
中文名
java web
应    用
Servlet,JSP
java web主要框架
Java的Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向对象实现请求和响应的流程,支持Jsp,Freemarker,Velocity等视图。Java EE标准,这意味着有很大的市场需求和更多的工作机会上手快速并且相对容易有大量可用的组件库大量的JSP标签对REST和安全支持不好没有一个统一的实现。既有SUN的实现,又有Apache的实现——MyFaces。对Spring MVC覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等便于测试——归功于IoC大量的XML配置文件太过灵活——没有公共的父控制器没有内置的Ajax支持不需要书写XML配置文件良好的学习文档社区成员很热心社区比较小不如其他的项目活跃ActionBean里面的URL是硬编码的架构简单——易于扩展标记库很容易利用FreeMarker或者Velocity来定制基于控制器或者基于页面的导航文档组织得很差对新特征过分关注一旦学会它,将极大地提高生产率HTML模板——对页面设计师非常有利每出一个新版本,都会有大量的创新文档过于概念性,不够实用学习曲线陡峭发行周期长——每年都有较大的升级对Java开发者有利(不是Web开发者)页面和显示绑定紧密社区活跃——有来自创建者的支持HTML模板和Java代码紧挨着需要对OO有较好的理解Wicket逻辑——什么都用Java搞定
收起全文
精华内容
下载资源
问答
  • 2021-04-13 11:32:34

    1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。 

    2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。 

    3、容器将<context-param>转换为键值对,并交给servletContext。 

    4、容器创建<listener>中的类实例,创建监听器。 

    一、Web.xml的作用?

    作用是用来初始化配置信息的。

    比如:Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。

    二、Web.xml是每个J2EE工程所必需的吗?

    当你的工程不需要上述配置时,就不需要web.xml来配置你的Application。

    三、节点元素Load-on-startup

    Load-on-startup 元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或是这个元素不存在,那么容器会在该servlet被调用的时候,加载这个servlet 。如果值是正整数或零,容器在配置的时候就加载并初始化这个servlet,容器必须保证值小的先被加载。如果值相等,容器可以自动选择先加载谁。  

    在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是: 

    标记容器是否在启动的时候就加载这个servlet。 

    当值为0或者大于0时,表示容器在应用启动时就加载这个servlet; 

    当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。 

    正数的值越小,启动该servlet的优先级越高。 

    四、加载顺序

    首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:ServletContext -> listener -> filter -> servlet

            同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param 配置节可写在任意位置,因此真正的加载顺序为:context-param -> listener -> filter -> servlet

            对于某类配置节而言,与它们出现的顺序是有关的。以 filter 为例,web.xml 中当然可以定义多个 filter,与 filter 相关的一个配置节是 filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping 配置节而言,filter-mapping 必须出现在 filter 之后,否则当解析到 filter-mapping 时,它所对应的 filter-name 还未定义。web 容器启动时初始化每个 filter 时,是按照 filter 配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用 doFilter() 方法的。

            servlet 同 filter 类似,此处不再赘述。

           由此,可以看出,web.xml 的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。

    五、常用标签及其功能

    1. Schema文件

    每个xml文件都有定义它书写规则的Schema文件,也就是说javaEE的定义web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml的模式文件是由Sun 公司定义的,每个web.xml文件的根元素为<web-app>中,必须标明这个web.xml使用的是哪个模式文件。如: 

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee"  --命名空间,类似包名,因为xml的标签可自定义,需要命名空间来区分
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" --xml遵循的标签规范
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    <a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\" "="">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" --用来定义xmlschema的地址,也就是xml书写时需要遵循的语法,两部分组成,前面部分就是命名空间的名字,后面是xsd(xmlschema)的地址
    >
    </web-app>

       web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,标签元素的种类肯定也会越来越多,但有些不是很常用的,我们只需记住一些常用的并知道怎么配置就可以了。 

    2. 关于欢迎页面

    访问一个网站时,默认看到的第一个页面就叫欢迎页,一般情况下是由首页来充当欢迎页的。一般情况下,我们会在web.xml中指定欢迎页。但 web.xml并不是一个Web的必要文件,没有web.xml,网站仍然是可以正常工作的。只不过网站的功能复杂起来后,web.xml的确有非常大用处,所以,默认创建的动态web工程在WEB-INF文件夹下面都有一个web.xml文件。

    指定欢迎页面,例如: 

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

    PS:在用户访问Web应用时,如果仅给出Web应用的根访问URL,没有指定具体的文件名,容器会调用<weblcome-file- list> 元素里指定的文件清单。<welcome-file-list>里允许有多个<welcome-file>元 素,每个元素代表一个文件。显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推,如果所有文件都不存在,则抛出404错误。

     

    3. 命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖命名的,命名必须在定制URL前。下面拿servlet来举例: 

    (1)、为Servlet命名:

    <servlet> 
         <servlet-name>servlet1</servlet-name> 
         <servlet-class>org.whatisjava.TestServlet</servlet-class> 
    </servlet>

    (2) 、为 Servlet 定制 URL 、  

    <servlet-mapping> 
         <servlet-name>servlet1</servlet-name> 
         <url-pattern>*.do</url-pattern> 
    </servlet-mapping>

    4. 详解web.xml

    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd"> 
    <web-app> 
    <display-name>Sample Application</display-name> 
    <description>This is a sample application</description>
    <!-- 在此设定的参数,可以在servlet中用 getServletContext().getInitParameter("my_param") 来取得 -->
    <context-param>	<!-- 用来设定web站台的环境参数 -->
        <param-name>my_param</param-name>
        <param-value>hello</param-value>
    </context-param>
    <filter> 
    <!–过滤器名,可以随便取,当web应用中有多个过滤器时不允许重名.–> 
    <filter-name>SampleFilter</filter-name> 
    <!–具体的过滤器的类的完整的包名+类名。注意:不能写错了。否则容器不能正确的实例化过滤器–> 
    <filter-class>mypack.SampleFilter</filter-class> 
    <init-param> 
    <!– 参数名 –> 
    <param-name>initParam1</param-name> 
    <!– 参数值 –> 
    <param-value>2</param-value> 
    </init-param> 
    </filter> 
    <!– Define the SampleFilter Mapping –> 
    <filter-mapping> 
    <!–过滤器名,注意要和上面的<filter-name>里的名字一样。–> 
    <filter-name>SampleFilter</filter-name> 
    <!– 指定过滤器负责过滤的URL。这里指定了*.jsp表示在访问任何一个jsp页面时都会先使用mypack.SampleFilter过滤器进行过滤。如果写成login.jsp.则只有在访问login.jsp时才会调用该过滤器进行过滤。–> 
    <url-pattern>*.jsp</url-pattern> 
    </filter-mapping> 
    <servlet> 
    <!– Servlet名字,可以随便取,有多个Servlet时不允许重名–> 
    <servlet-name>SampleServlet</servlet-name> 
    <!–指定实现这个Servlet的类。完整的包名+类名–> 
    <servlet-class>mypack.SampleServlet</servlet-class> 
    <!–定义Servlet的初始化参数(包括参数名和参数值)一个<servlet>元素里可以有多个<init-param>元素。在Servlet类中通过ServletConfig类的来访问这些参数。 
    –> 
    <init-param> 
    <!– 参数名 –> 
    <param-name>initParam1</param-name> 
    <!– 参数值 –> 
    <param-value>2</param-value> 
    </init-param> 
    <!–指定当前Web应用启动时装载Servlet的次序。当这个数>=0时,容器会按数值从小到大依次加载。如果数值<0或没有指定,容器将载Web客户首次访问这个Servlet时加载。–> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <!– Define the SampleServlet Mapping –> 
    <servlet-mapping> 
    <!–必须和<servlet>里的<servlet-name>内容一样–> 
    <servlet-name>SampleServlet</servlet-name> 
    <!–指定访问这个Servlet的URL。这里给出的是对于整个Web应用的相对URL路径。–> 
    <url-pattern>/sample</url-pattern> 
    </servlet-mapping> 
    <session-config> 
    <!–设 定HttpSession的生命周期。这里以分钟计算。下面的设定指明Session在最长不活动时间为10分钟。过了这个时间,Servlet容器将它 作为无效处理。注意这里和程序里指定的计数单位不同,程序里是以秒为单位。<session-config>只有<session- timeout>这个元素–> 
    <session-timeout>10</session-timeout> 
    </session-config> 
    <!— 配置会话侦听器,class表示一个HttpSessionListener或 HttpSessionActivationListener 或 HttpSessionAttributeListener或 HttpSessionBindingListener的实现类。该节点允许多个 –> 
    <listener> 
    <listener-class>com.cn.SessionListenerImpl</listener-class> 
    </listener> 
    <!– 在 用户访问Web应用时,如果仅给出Web应用的根访问URL,没有指定具体的文件名,容器会调用<weblcome-file- list> 元素里指定的文件清单。<welcome-file-list>里允许有多个<welcome-file>元 素,每个元素代表一个文件。容器会先找第一文文件件是否存在,如果存在这把这个文件返回个客户,不再进行其他文件的查找。如果不存在则找第二个文件,依次 类推。如果所有文件都不存在,则跑出404错误–> 
    <welcome-file-list> 
    <welcome-file>login.jsp</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    </welcome-file-list> 
    <!– 设置Web应用引用的自定义标签库。下面的代码定义了一个/mytaglib标签库,它对应的TLD文件为/WEB-INF/mytaglib.tld –> 
    <taglib> 
    <taglib-uri>/mytaglib</taglib-uri> 
    <taglib-location>/WEB-INF/mytaglib.tld</taglib-location> 
    </taglib> 
    <!– 如果Web应用访问了由Servlet容器管理的某个JNDI Resource必须在这里声明对JNDI Resource的引用 –> 
    <resource-ref> 
    <!– 对应用资源的说明 –> 
    <description>DB Connection</description> 
    <!– 指定所引用资源的JNDI名字 –> 
    <res-ref-name>jdbc/sampleDb</res-ref-name> 
    <!– 指定所引用资源的类名字 –> 
    <res-type>javax.sql.DataSource</res-type> 
    <!– 指定管理所引用资源的Manager, 它有两个可选值:Container和Application.Container表示由容器来创建和管理Resource,Application表示由Web应用来管理和创建Resource –> 
    <res-auth>Container</res-auth> 
    </resource-ref> 
    <security-constraint> 
    <web-resource-collection> 
    <!– 这个名字是必须的,由工具使用,别的地方不使用 –> 
    <web-resource-name>my application</web-resource-name> 
    <!– 指定要受约束的资源,至少有一个。可以有多个. –> 
    <uri-pattern>/*</uri-pattern> 
    <!– 描 述了度可与URL模式指定的资源哪些方法是受约束的,如果没有<http-method>元素,表示任何角色的人都无法访问任何http的方 法  。这里放置了GET方法,表示只有GET方法是受约束的。其他任何角色的人可以访问POST和其他的方法。但不能访问GET方法。–> 
    <http-method>GET</http-method> 
    </web-resource-collection> 
    <!– 如果没有<auth-constraint>表示所有角色都能访问GET方法,如果是<auth-constraint/>表示任何角色都不能访问GET方法 –> 
    <auth-constraint> 
    <!– 可选的。表示哪些角色能够在指定的资源上调用受约束的方法。这里表示只有拥有Admin和Member角色的人能够访问GET方法 
    <security-role>>里的<role-name>值一样 –> 
    <role-name>Admin</role-name> 
    <role-name>Member</role-name> 
    </auth-constraint> 
    </security-constraint> 
    <!– 将指定的角色映射到web.xml里 –> 
    <security-role> 
    <description>The role that is required to log into the my Application 
    </description> 
    <!– 以下的角色和tomcat-users.xml里的<tomcat-users>里的<role rolename=""/>里的rolename属性值对应 –> 
    <role-name>Guest</role-name> 
    <role-name>Admin</role-name> 
    <role-name>Member</role-name> 
    </security-role> 
    <!– 如果要想进行认证,必须有<login-config>–> 
    <login-config> 
    <!– 认证方式。有4种:BASIC:基本。 DIGEST:摘要。CLIENT-CERT:客户证书(能提供最高强度的认证)。FORM:表单 –> 
    <auth-method>FORM</auth-method> 
    <realm-name> 
    Tomcat Servet Configuraton Form-Based Authentication Area 
    </realm-name> 
    <form-login-config> 
    <form-login-page>/login.jsp</form-login-page> 
    <form-error-page>/error.jsp</form-error-page> 
    </form-login-config> 
    </login-config>
    <error-page> <!-- 用来处理错误代码或异常的页面,有三个子元素: -->
        <error-code>404</error-code> <!-- 指定错误代码 -->
        <exception-type>java.lang.Exception</exception-type> <!-- 指定一个JAVA异常类型 -->
        <location>/error404.jsp</location> <!-- 指定在web站台内的相关资源路径 -->
    </error-page>
    <mime-mapping>		<!-- 定义某一个扩展名和某一个MIME Type做对映,包含两个节点 -->
        <extension>doc</extension>	<!-- 扩展名的名称 -->
        <mime-type>application/vnd.ms-word</mime-type>	<!-- MIME格式 -->
    </mime-mapping> 
    <mime-mapping>
        <extension>xls</extension>
        <mime-type>application/vnd.ms-excel</mime-type>
    </mime-mapping>
    </web-app>

     

    更多相关内容
  • java web接口开发demo

    千次下载 热门讨论 2016-06-03 16:53:46
    java web接口开发demo 详细地址:http://blog.csdn.net/zxw136511485/article/details/51437115
  • Java Web开发完全掌握

    千次下载 2016-01-24 20:29:32
    Java Web开发完全掌握》主要内容简介:java是目前最受欢迎、应用最为广泛的跨平台程序设计语言之一。全书详细讲解了java web开发的相关技术知识,主要包括javascript、jsp、javabean、表达式语言(el)、jsp标签库...
  • Java Web自定义MVC框架项目源代码

    千次下载 热门讨论 2015-04-13 16:03:16
    Java Web自定义MVC框架完整的项目文件,包括源代码和创建数据库的SQL语句,详细的讲解请参考http://blog.csdn.net/jackfrued/article/details/42774459
  • java web技术开发大全(最全最新)

    千次下载 热门讨论 2012-10-10 07:21:38
    Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握...
  • java web 外文文献

    2015-06-17 23:42:35
    java web 外文文献 毕业论文参考文献
  • java web 项目打包、加密工具

    热门讨论 2012-06-18 17:08:17
    JInstall—专业的java web 项目打包、加密工具 软件说明: 通常情况下,java项目很容易被反编译、破解。即使对class文件进行了混淆,仍然还是符合java标准的类文件,所以还是可以反编译。要想彻底保护您的项目不被...
  • Java Web整合开发实战:基于Struts 2+Hibernate+Spring

    千次下载 热门讨论 2016-02-12 05:56:14
    基于Struts 2、Hibernate、Spring等框架的组合 来一次Java Web整合开发实战的练习
  • Java Web酒店管理系统源码 +mysql 数据库

    千次下载 热门讨论 2014-03-19 10:04:37
    首页访问地址 :http://localhost:8080/JavaPrj_9/首页配置 页面 修改 打开web.xml 修改 即可 <welcome>/WEB-INF/pages/userLogin.jsp 复制代码 数据库配置 为hotel-hibernate.xml 文件 测试了将近2个小时 系统...
  • 简单java web学生信息管理系统

    千次下载 热门讨论 2015-07-30 09:52:37
    本人是新手,也刚开始java web的学习,就在网上找了个例子练手,是一个简单的jsp+servler的学生管理系统。网址:http://www.javazhijia.com/ym/web/193.html导入到eclipse有点报错,我自己做了一点修改,将oracle...
  • java web接收上传文件服务器端示例

    热门讨论 2015-03-15 13:58:37
    做毕业设计的时候Android端要求把相关文件传到服务器端保存,目前这个就是用来接收文件上传请求的简单项目,目前就是在传送参数的时候中文会乱码,但是传送的文件不会乱码
  • Java Web项目模板

    千次下载 热门讨论 2012-08-01 17:42:27
    java web 项目模板
  • Java Web开发常见问题.pdf

    千次下载 热门讨论 2013-04-21 03:50:00
    Java Web开发常见问题.pdf
  • java web开发实战1200例 第二卷 源码

    千次下载 热门讨论 2013-04-01 18:30:07
    范围两个压缩部分,请留意下载后解压!...《Java Web开发实战1200例(第2卷)》非常适合Java Web项目开发人员、Java Web初学者及编程爱好者使用,同时也可以作为培训机构、大中专院校老师和学生的实践参考用书。
  • 基于Spring springMVC mybatis三种开源框架,构建java web应用。
  • java web 实现 调查问卷(带数据库)

    热门讨论 2014-06-24 15:18:56
    java web实现调查问卷,使用jsp/servlet技术,包含数据库建表语句。数据库使用mysql。
  • Intellij IDEA2021.1创建Java web项目(超详细)

    万次阅读 多人点赞 2021-05-16 21:11:58
    接下来,我们在WEB-INF下创建classes,lib文件夹 编辑项目结构 将output path的路径改成classes文件夹的路径 接下来点击dependencies,选择加号,选择jars or directories 点击后,他会弹出一个文件选择框,这里...

    Intellij IDEA2021.1

    在这里插入图片描述
    在这里插入图片描述
    点击next
    在这里插入图片描述
    填写项目的名称以及位置,finish
    在这里插入图片描述
    右键项目,选择add framework support
    在这里插入图片描述
    在这里插入图片描述
    完成之后,项目结构变成了这样
    在这里插入图片描述
    接下来,我们在WEB-INF下创建classes,lib文件夹
    在这里插入图片描述
    编辑项目结构
    在这里插入图片描述

    将output path的路径改成classes文件夹的路径
    在这里插入图片描述
    接下来点击dependencies,选择加号,选择jars or directories
    在这里插入图片描述
    点击后,他会弹出一个文件选择框,这里选择lib文件所在位置,之后按照下面这张图
    在这里插入图片描述
    在这里插入图片描述
    完成以上这些,我们配置web容器(注意:这里是tomcat Server,不是tomcatEE Server)
    在这里插入图片描述
    第一步配置tomcat所在路径,第二步配置jre/jdk,第三步填写web容器名字,这里可以写tomcat+版本号
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    完成后,点击OK即可
    最后点击右上角的绿色三角形启动容器
    在这里插入图片描述
    大功告成!!

    展开全文
  • Java WEB开发基础知识

    万次阅读 多人点赞 2018-05-30 20:48:21
    一、WEB应用程序B/S ( browser/server ,浏览器/服务器)架构基于HTTP传输协议(超文本传输协议,回忆HTML的名字:超文本标记语言)WEB程序必须要运行在web容器上,如Tomcat /Jboss/WebLogic等二、HTTP协议HTTP使用...

    一、WEB应用程序

    B/S ( browser/server ,浏览器/服务器)架构

    基于HTTP传输协议(超文本传输协议,回忆HTML的名字:超文本标记语言)

    WEB程序必须要运行在web容器上,如Tomcat /Jboss/WebLogic等

    二、HTTP协议

    HTTP使用TCP作为它的支撑运输层协议,默认的端口是80(缺省端口)。

    超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议。HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。 

    HTTP 请求报文HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成,如下图所示:

    wKioL1THNfahGAkDAAFu--59S3M173.jpg

    HTTP 请求报文由请求行、请求头部、空行 和 请求包体 4 个部分组成下面对请求报文格式进行简单的分析:

    请求行:请求行由方法字段、URL 字段 和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT;

    GET:当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制。例如,/index.jsp?id=100&op=bind。

    POST:当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,比如完成表单数据的提交,将数据提交给服务器处理。GET 一般用于获取/查询资源信息,POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;请求头部:请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。

    请求头部通知服务器有关于客户端请求的信息,典型的请求头有:

    User-Agent:产生请求的浏览器类型;

    Accept:客户端可识别的响应内容类型列表;星号 “ * ” 用于按范围将类型分组,用 “ */* ” 指示可接受全部类型,用“ type/* ”指示可接受 type 类型的所有子类型;

    Accept-Language:客户端可接受的自然语言;

    Accept-Encoding:客户端可接受的编码压缩格式;

    Accept-Charset:可接受的应答的字符集;

    Host:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机;

    connection:连接方式(close 或 keepalive);

     Cookie:存储于客户端扩展字段,向同一域名的服务端发送属于该域的cookie;

    空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头;

    请求包体:请求包体不在 GET 方法中使用,而是在POST 方法中使用。POST 方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型 Content-Type 和包体长度 Content-Length。

    HTTP 响应报文HTTP 响应报文由状态行、响应头部、空行 和 响应包体 4 个部分组成,如下图所示:

    20150126110634828.png

    下面对响应报文格式进行简单的分析:

    状态行:状态行由 HTTP 协议版本字段、状态码和状态码的描述文本 3 个部分组成,他们之间使用空格隔开; 状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类如下所示:

    1xx:表示服务器已接收了客户端请求,客户端可继续发送请求;

    2xx:表示服务器已成功接收到请求并进行处理;

    3xx:表示服务器要求客户端重定向;

    4xx:表示客户端的请求有非法内容; 

    5xx:表示服务器未能正常处理客户端的请求而出现意外错误;

    状态码描述文本有如下取值:

    200 OK:表示客户端请求成功; 

    400 Bad Request:表示客户端请求有语法错误,不能被服务器所理解; 

    401 Unauthonzed:表示请求未经授权,该状态代码必须与 WWW-Authenticate 报头域一起使用;

    403 Forbidden:表示服务器收到请求,但是拒绝提供服务,通常会在响应正文中给出不提供服务的原因; 

    404 Not Found:请求的资源不存在,例如,输入了错误的URL; 

    500 Internal Server Error:表示服务器发生不可预期的错误,导致无法完成客户端的请求; 

    503 Service Unavailable:表示服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常;

    三、Servlet

    Servlet是javaWEB的核心,简单的说就是用Java编写的服务器端程序。用户进行一个动态请求(静态请求就是直接请求HTML )时,实际上是请求—个servlet

    WEB容器将Servlet加载到内存 通过init方法进行初始化

    Service()方法根据请求方法调用对应的处理方法doPost()或doGet(),还有一些其他的请求方法doPut() doOptions()...但这些方法不常用,并且从安全的角度都是建议屏蔽的。

    当Server不再需要Servlet时(一般当Server关闭时),Server调用 Servlet 的 destroy() 方法。

    四、JSP

    Java Server Pages是一种静态编码町机和动态编码Java混合的技术, 也有说法就是将java代码镶嵌在HTML上,在JSP之前,Servlet作为主体,功能比较强大,设计也很先进,但瑜出 HTML页面却完全是Java的out.print(), 一行一句的输出,对于页面编写和修改来说非常不方便,这才促使SUN公司推出JSP。JSP和ASP、PHP类似都是镶嵌型语言。另外补充一下,WEB容器后动的时候,会将_JSP编译成Servlet,也有说法JSP是Servlet的升级版。

    五、Tomcat

    Java WEB容器有很多,这里以Tomcat为例来说。前面说到,WEB程序必须运行在WEB容器上。Tomcat就是作为WEB容器来运行切Java WEB程序的。Tomcat是JAVA语言写的,需要JVM作为运行环境。

    Tomcat的目录结构

    bin………………………………可执行程序(脚本),启动停止调试Tomcat的一些bat.sh

    conf…………………………….配置文件 webx.ml server.xml 等

    lib……………………………....Tomcat运行需要的jar包

    logs…………………………….曰志文件

    temp…………………………….临时文件

    webapps………………………WEB 程序(编译后的项目文件)

    work…………………………….将jsp文件生成java文件在此目录进行

    补充说明一下,Tomcat将jsp编译成Java文件并不是实时进行的,所以有时候修改了页面,并没有及时生效,这时候我们只需要删除一下work目录下对应的文件即可。

    六、Java WEB项目结构

    一般来说,我们常说的Java项目基本上都是WEB项目(B/S架构),不是说Java不能做C/S程序,实际上Java的Swing就是画界面的,但是现在C#已经成为画界面最流行的语言,快速,简单,所以越来越少的人用Java来做C/S程序开发了。我们主要来说Java WEB项目,下面是最基本的项目结构。

    src…………………………….JAVA源码,java文件目录

    webContent/webRoot……………项目发布目录

    WEB-INF

    lib………………………………….项目需要的jar包

    web.xml…………………………WEB 程序的入口

    以上是Java WEB项目的核心结构,实际开发中,搭建项目会比这些复杂,特别是引用框架以后,配置文件的增加,会添加一些新的目录。

    七、开发框架

    前面提到客户端发起动态请求时,请求到Servlet进行处理,然后返回,整个请求处理的工作都是在Servlet中处理的,看起来比较简单,每当需要一个不同的请求就写一个Servlet,但实际开发的时候如果功能模块比较多,就需要写很多个Servlet,并且如果我们想修改一个请求的返回,也必须通过修改Java代码 (Servlet)的方式来实现。

    这样对功能的扩展和维护来说,就比较麻烦了,所以也就推动了很多集成幵发框架的流行,比如Webwork,Struts,SpringMVC,Jfinal等都是主流的Java WEB开发框架。

    使用框架有一个很笼统的优点概述,可以加快开发进程,在类似项目中重用代码将为开发者节省大量的时间和精力.框架为执行繁琐的代码任务提供预建模块。让使用者只关心核心业务的开发,框架帮你屏蔽原有技术跟业务开发无关的各类技术问题。但如果想要深入的了解一个框架,使用的更加熟练,还是需要了解底层的原理,找到其源头也就是Servlet。

    以SpringMVC为例简单描述一下工作原理

    SprfngMVC主要也是通过DispatcherServlet (Servlet调配器,在web_xml中配置)实现了Servlet这个接口,又叫前端控制器,来自前端的请求会先到达这里,它负责到后台去匹配合适的handler。DispatcherServlet的主要工作流程如下:

    1、 客户端发出http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.

    2、 DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器Controller (Handler)。

    3、 DispatclierServlet 根据 HandlerMapping 找到对应的Handler,将处理权交给Handler ( Handler将具体的处理进行封装),再由具体的 HandlerAdapter对Handler进行具体的调用。

    5、Handler对数据处理完成以后将返回一个ModeAndView对象给DispatcherServlet.

    6、  Handler返回的ModelAndView只是一个逻辑视图并不是一个正式的视图,Di spatcherSevlet通过ViewResolver将邀辑视图转化为真正的视图view(这句话简单的就是返回一个要返回的页面的相对路径,通过试图解析器转换成具体那个页面)。

    7、  Dispatcher通过model解析出ModeAndView中的参数进行解析最终展现出完整的view并返回给客户端。

    八、用SpringMVC编写功能模块

    由于框架配置工作量比较大,也需要对各方面的技术有所了解,暂时不做描述。我们简单的说一下实际开发中,如何在现有的框架基础上完成一个功能模块,了解功能的基本流程,以登录为例:

    1、首先要有登录入口( JSP页面),在SpringMVC框架中我们不建议直接 访问JSP页面,所以我们登录页面的访问也是通过后台处理的;

    2、编写丨ogin.jsp页面及登录返回页面index.jsp ;

    3、编写LoginController,里面包含两个请求控制方法,一个preLogin(),一个doLogin() ,其中preLogin()负责处理请求登录页面的请求(返回到 login.jsp ), doLogin()处理登录请求返回到index.jsp。

    4. login.jsp中需要通过表单或者ajax进行登录请求。

    请求/preLogin业务逻辑处理返回到login.jsp à 输入用户名、密码…

    请求/doLogin业务逻辑处理,返回登录结果index.jsp。

    九、其他基础知识

    数据库操作,Jdbc/Hibernate/Mybatis

    JSP标签,EL表达式,Struts标签,C标签等

    基本的前端技术CSS/JS/jQuery/Ajax


    参考资料 :

    Java WEB开发基础知识


    展开全文
  • 《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》详细介绍了Java Web软件架构中的各种开发技术。主要内容包括:以MySQL为数据库、Tomcat为Web服务器、Eclipse为开发工具、CVS为版本控制工具...
  • 零基础学Java Web开发 jSP+Servlet+Struts +Spring+Hibernate+Ajax零基础学Java Web开发 jSP+Servlet+Struts +Spring+Hibernate+Ajax零基础学Java Web开发 jSP+Servlet+Struts +Spring+Hibernate+Ajax零基础学Java ...
  • java web中如何添加图片

    千次阅读 2021-03-02 11:14:34
    java web中如何添加图片对于java可视化界面插入背景图片只需要background-image:url(图片路径)就行,而对于web项目中,并非如此效果如下:我们就需要在jsp页面中写Java代码,让Java来获取项目的根路径,通过绝对路径...

    51c10d9d6bf42e5a0ddb078f60cf2c46.png

    java web中如何添加图片

    对于java可视化界面插入背景图片只需要background-image:url(图片路径)就行,而对于web项目中,并非如此

    效果如下:

    78b4da84d6d57b169bd2806dd8f46ede.png

    我们就需要在jsp页面中写Java代码,让Java来获取项目的根路径,通过绝对路径的方式引入这些图片文件。我们则需要在jsp文件的开头写入下面的代码。

    String path = request.getContextPath();

    String basePath=null;

    basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    int port=request.getServerPort();

    if(port==80){

    basePath=request.getScheme()+"://"+request.getServerName()+path;

    }else{

    basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;

    }

    request.setAttribute("basePath", basePath);

    %>

    这几段代码只是获取基本的路径,而request就是我们常说的JSP九大隐式对象之一,JSP就是Servlet,request.setAttribute("basePath", basePath) 表示将得到的basePath(项目根路径)存放到request作用域中,但是到这里我们还是不能把图片显示出来,我们需要在图片路径前面加入这行代码$。如下:

    b72166ea1c64fbc28da95d08cec437e5.png

    (相关视频教程分享:java视频教程)

    展开全文
  • 精通Java Web整合开发(JSP+AJAX+Struts+Hibernate)(第2版)

    千次下载 热门讨论 2012-11-29 14:55:20
    书籍目录: 《精通java web整合开发(jsp+ajax+struts+hibernate)(第2版)》 第1篇 基 础 篇 第1章 java web应用开发技术选用策略 第2章 开发运行环境的安装与配置 2.1 安装与配置jdk 1.65 2.2 安装web服务器tomcat ...
  • 亮剑 Java Web 项目开发案例导航

    热门讨论 2012-07-13 15:40:38
    这个是 Java Web 项目开发案例导航 的源代码 很适合新手 练习用
  • java web 开发实战经典(一)

    万次阅读 2021-03-07 09:17:10
    一、jsp三种Scriptlet(脚本小程序)1、 :定义局部变量、编写语句等。...我们一般通过JavaBean的形式调用类)public static final String INFO = "JAVA Web";//定义全局变量%>public int add(in...
  • Java Web 简明教程

    千次阅读 多人点赞 2019-12-30 22:41:39
    猫哥带你去战斗——Java Web开发——前言[0] 猫哥带你去战斗——Java Web开发——开发环境介绍[0] 猫哥带你去战斗——Java Web开发——开发环境介绍[1] 猫哥带你去战斗——Java Web开发——开发环境介绍[2] 猫哥带你...
  • Java Web项目企业事务管理系统源码

    千次下载 热门讨论 2012-12-13 07:58:45
    Java Web项目企业事务管理系统源码,详细的代码注释 本系统的开发工具具体如下。 ● 系统开发平台:MyEclipse 6.5。 ● 数据库管理系统软件:MySQL 5.0。 ● 运行平台:Windows 2000/Windows XP/Windows 2003/...
  • Java Web从入门到实战

    万次阅读 多人点赞 2022-01-23 18:06:57
    Java Web从入门到实战,十万+字符,一文带你从零到实战,内含Linux、Tomcat、Servlet、JSP、Mysql、JDBC、Mybatis、js、jQuery等超多内容
  • 架构探险——从零开始写Java Web框架试读样章

    千次下载 热门讨论 2015-11-09 14:20:14
    从程序猿到架构狮的那点事儿,带您步入神奇的架构探险之旅,开源中国创始人红薯作序力荐.pdf
  • Java Web开发从初学到精通》介绍如何整合Web框架进行J2EE开发,所有实例都基于MyEclipse IDE开发,引领读者快速进入基于JaVa web的J2EE应用领域。《Java Web开发从初学到精通》开始主要介绍Servlet、JSP、JavaBean...
  • java web开发直播平台可以做到,现在已经有很多开源Java直播工具了。Java可以实现全部功能,而且开发成本可能还略低。但是易用性,运营成本等各方面,都是不行的。java web开发直播平台的实现Java可以做到,现在已经...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,171,789
精华内容 868,715
关键字:

java web

java 订阅