Java Web开发介绍

转自:http://www.cnblogs.com/pythontesting/p/4963021.html

Java Web开发介绍

简介

Java很好地支持web开发,在桌面上Eclipse RCP谈不上成功,JAVA是主要用在服务器端,和Python一样是极其重要的Web后台开发语言。

Java Web应用通常不直接在服务器上运行,而是在Web容器内。容器提供的运行时环境,提供JVM (Java Virtual Machine)运行本地Java应用。容器本身也运行在JVM。

通常Java的分为两个容器:Web容器和Java EE容器。典型的Web容器是Tomcat或Jetty。Web容器支持Java Servlet和JavaServer Page的执行。 Java EE容器支持更多的功能,例如,服务器负载的分布。

大部分现代的Java Web框架是基于servlet的。流行的Java Web框架有GWT,JavaServer Faces,Struts和Spring框架。这些Web框架通常需要至少需要Web容器。

Java Web应用程序是动态的资源(如Servlet,JavaServer页,Java类,jar)和静态资源(HTML页面和图片)的集合。 Java Web应用程序可以部署为WAR(Web ARchive)文件。

WAR文件是包含相应的Web应用程序的完整内容的zip文件。

标准的Java技术由Java Community Process (JCP http://jcp.org/)指定。包含如下:

servlet:扩展"HttpServlet",在Web容器中的响应HTTP请求的Jav??a类。最新的正式版的Servlet 3.1,参见https://en.wikipedia.org/wiki/Java_servlet。

JavaServer页面(JavaServer Page JSP)是含有HTML和Java代码的文件。首次执行时web
cotainer编译JSP成servlet。目前的最新版本是2.2。参见https://en.wikipedia.org/wiki
/JavaServer_Pages。

JavaServer Pages Standard Tag Library
(JSTL)用标签的形式封装常见的核心功能。目前的版本是1.2.1??,参见https://en.wikipedia.org/wiki
/JavaServer_Pages_Standard_Tag_Library。

非标准的Java Web开发。例如,GWT支持Java开发,并编译成JavaScript。

客户端操作

Java提供了通用的,轻量级的HTTP客户端API通过HTTP或HTTPS协议访问的资源。的主要类访问因特网类为java.net.URL类和java.net.HttpURLConnection类。

URL类可指向网络资源,而HttpURLConnection的类可用于访问网络资源。HttpURLConnection类可创建InputStream(像读取本地文件一样)。

在最新版本的HttpURLConnection支持透明响应压缩(通过头:Accept-Encoding: gzip)。

比如访问:http://automationtesting.sinaapp.com/

package com.company;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class DownloadWebpageExample {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://automationtesting.sinaapp.com/");
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            String readStream = readStream(con.getInputStream());
            // Give output for the command line
            System.out.println(readStream);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private static String readStream(InputStream in) {
        StringBuilder sb = new StringBuilder();
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(in));) {

            String nextLine = "";
            while ((nextLine = reader.readLine()) != null) {
                sb.append(nextLine);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }
}

看看python如何实现:

>>> import requests
>>> requests.get("http://automationtesting.sinaapp.com").text

2行搞定,可见web访问这块Java是相当笨拙。

HttpURLConnection类的Javadoc,建议不要复用HttpURLConnection的。万一这样使用HttpURLConnection的不具有线程问题,不同线程之间不能共享。

下面我们把下载放在一个方法:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class ReadWebPage {
    public static void main(String[] args) {
        String urlText = "http://automationtesting.sinaapp.com";
        BufferedReader in = null;
        try {
            URL url = new URL(urlText);
            in = new BufferedReader(new InputStreamReader(url.openStream()));

            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

从网页获取的返回码

最重要的HTML返回码为:

Return Code Explaination
200 Ok
301 Permanent redirect to another webpage
400 Bad request
404 Not found

下面的代码将访问网页,打印HTML访问返回代码。

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class ReadReturnCode {
    public static void main(String[] args) throws IOException {
        String urltext = "http://automationtesting.sinaapp.com/";
        URL url = new URL(urltext);
        int responseCode = ((HttpURLConnection) url.openConnection())
                .getResponseCode();
        System.out.println(responseCode);
    }
}

python实现如下:

>>> import requests
>>> result = requests.get("http://automationtesting.sinaapp.com")
>>> result.status_code
200

因特网媒体类型(MIME,又名Content-type)定义是网络资源的类型。 MIME类型是在因特网上的文件格式,由两部分组成。对于HTML页面的内容类型为"text/html"的。

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class ReadMimeType {
    public static void main(String[] args) throws IOException {
        String urltext = "http://automationtesting.sinaapp.com";
        URL url = new URL(urltext);
        String contentType = ((HttpURLConnection) url.openConnection())
                .getContentType();
        System.out.println(contentType);
    }
}

Python实现如下:

>>> import requests
>>> result = requests.get("http://automationtesting.sinaapp.com")
>>> result.headers[‘content-type‘]
‘text/html;charset=utf-8‘
时间: 2024-10-24 09:27:31

Java Web开发介绍的相关文章

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

java web开发 高并发处理

java web开发 高并发处理 java 高并发 java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF.尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不

Java Web开发之详解JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用.这就是经典的MVC模型. Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子.在具体讲述JSP之前,先把JavaBean简单介绍一下. JavaBean其实就是一个Java普通类,定义了类的属性和行为(get.set方法).在M

Java Web开发笔记(2016-5-6 11:13、2016-5-10 11:13、2016-5-12 14:58)

http://localhost:8080/EquipmentSys/equipment/findEquipStateByEquipmentNumber.html?DEVEICEID=04:e6:76:df:f0:94 返回 1,1 设备状态(1运营,2维护,3锁定),是否更新的开关IsUpdate={1,0}(游戏APK更新条件:IsUpdate=1而且版本号不一样) /** * 接口 * @param request * @return * @throws UnsupportedEncodi

经验之谈:循序渐进学习Java Web开发的五个阶段

Java web开发是Java开发中的主要方向,那什么是Java web开发呢,Java web开发就是基于J2SE的web应用程序开发,就是通过Java来解决互联网web应用的问题,互联网Web包含两个部分:web服务器和web客户端,Java语言在web服务器端的应用十分丰富,比如常用的Servlet.JSP等,总之,Java编程技术的到来给Web互联网的发展注入了一针强心剂,既然Java Web开发功能这么强大,那我们应如何循序渐进的学习Java Web开发呢?下面亦是美网络小编分为五个阶

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

用Eclipse+Maven+Jetty构建Java Web开发环境(综合几篇教程整合2014年版)

工作需要用到Jetty作为web容器,得知Eclipse+Maven+Jetty的组合很不错,因此到网上查找了很多教程,但是或多或少写的不详细或者有过时的内容在里面导致最后配置失败,为了以后同事配置方便,写下这篇配置教程,顺便来方便一下大家. 用到的参考资料如下: [用Maven构建Java Web开发环境(Jetty容器)](以此教程为主)http://sarin.iteye.com/blog/784275 以及 http://sarin.iteye.com/blog/784697 [在Ecl

Java Web学习(3):Win7 64位操作系统搭建Java Web开发环境

一搭建Java Web开发环境的总体概览 工欲善其事必先利其器.学会搭建Java Web开发环境是学习JSP动态网站开发的最基本技能之一.主要介绍在 Windows 7 64位操作系统下搭建Java Web开发环境的过程,主要包括JDK的安装与配置.Tomcat的安装与配置. Eclipse IDE for Java EE Developers的安装与配置. 在这里推荐使用的: 1)Java  JDK 8.0 2)Server   Tomcat 8.0 3)IDE   Eclipse IDE f

个人的java web开发书单

首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开发/其他语言的书就不写了,因为自己只做过java web开发,那些书没什么资格评判.因为不是每本书都翻开确定一下再写的,可能有张冠李戴或记忆错误的情况,如发现了请指正.如有好书我这里没列举到的,请补充.此书单将持续完善. js书籍: <Javascript权威指南>犀牛书厚,唯一的顶尖著作,上册的