当前位置:首页 > 电子书 > 电子书下载 > >
软件开发综合实践指导教程 软件开发综合实践指导教程
码农之家

码农之家 提供上传

资源
17
粉丝
40
喜欢
85
评论
1

    软件开发综合实践指导教程 PDF 全书超清版

    JAVA WEB电子书
    • 发布时间:2019-04-12 17:10:23

    给大家带来的一篇关于JAVA WEB相关的电子书资源,介绍了关于JAVA、WEB应用方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小69.9 MB,胡洁萍编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.9。

  • 软件开发综合实践指导教程 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1UpxE9SachLinqvQkNTh5_
  • 提取码:0my7
  • 内容介绍

    本书用于指导Java Web应用综合实践,按3个层次带领读者进入Java Web应用技术世界。全书分4篇、共8章,内容依次为软件开发综合实践概述、搭建Java Web应用设计与开发环境、实训案例——企业信息展示系统、实训课题——网络新闻中心系统、实训案例——网络书城系统、实训项目——软件商城系统、实训案例——基于SSH的网上人才中心系统、实训课题——物流信息系统项目。书中引进一些新知识和新方法,内容实用,重点突出,讲解精炼,案例典型,既方便学习,又便于应用。

    本书内容丰富,实例典型,知识讲解系统,适合作为大中专院校计算机及其相关专业的教材或参考书,也可作为软件开发人员及其他有关人员的技术参考书。

    内容节选

    java实现一个简单的Web服务器实例解析

    Web服务器也称为超文本传输协议服务器,使用http与其客户端进行通信,基于java的web服务器会使用两个重要的类,
    java.net.Socket类和java.net.ServerSocket类,并基于发送http消息进行通信。

    这个简单的Web服务器会有以下三个类:

    *HttpServer
    *Request
    *Response

    应用程序的入口在HttpServer类中,main()方法创建一个HttpServer实例,然后调用其await()方法,顾名思义,await()方法会在指定端口上等待HTTP请求,对其进行处理,然后发送响应信息回客户端,在接收到关闭命令前,它会保持等待状态。

    该应用程序仅发送位于指定目录的静态资源的请求,如html文件和图像,它也可以将传入到的http请求字节流显示到控制台,但是,它并不发送任何头信息到浏览器,如日期或者cookies等。

    下面为这几个类的源码

    Request:

    package cn.com.server;
    import java.io.InputStream;
    public class Request {
    	private InputStream input;
    	private String uri;
    	public Request(InputStream input){
    		this.input=input;
    	}
    	public void parse(){
    		//Read a set of characters from the socket 
    		StringBuffer request=new StringBuffer(2048);
    		int i;
    		byte[] buffer=new byte[2048];
    		try {
    			i=input.read(buffer);
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    			i=-1;
    		}
    		for (int j=0;j<i;j++){
    			request.append((char)buffer[j]);
    		}
    		System.out.print(request.toString());
    		uri=parseUri(request.toString());
    	}
    	public String parseUri(String requestString){
    		int index1,index2;
    		index1=requestString.indexOf(" ");
    		if(index1!=-1){
    			index2=requestString.indexOf(" ",index1+1);
    			if(index2>index1){
    				return requestString.substring(index1+1,index2);
    			}
    		}
    		return null;
    	}
    	public String getUri(){
    		return this.uri;
    	}
    }

    Request类表示一个HTTP请求,可以传递InputStream对象来创建Request对象,可以调用InputStream对象中的read()方法来读取HTTP请求的原始数据。

    上述源码中的parse()方法用于解析Http请求的原始数据,parse()方法会调用私有方法parseUrI()来解析HTTP请求的URI,除此之外,并没有做太多的工作,parseUri()方法将URI存储在变量uri中,调用公共方法getUri()会返回请求的uri。

    Response:

    package cn.com.server;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    /** 
     * HTTP Response = Status-Line 
     *   *(( general-header | response-header | entity-header ) CRLF) 
     *   CRLF 
     *   [message-body] 
     *   Status-Line=Http-Version SP Status-Code SP Reason-Phrase CRLF 
     * 
     */
    public class Response {
    	private static final int BUFFER_SIZE=1024;
    	Request request;
    	OutputStream output;
    	public Response(OutputStream output){
    		this.output=output;
    	}
    	public void setRequest(Request request){
    		this.request=request;
    	}
    	public void sendStaticResource()throws IOException{
    		byte[] bytes=new byte[BUFFER_SIZE];
    		FileInputStream fis=null;
    		try {
    			File file=new File(HttpServer.WEB_ROOT,request.getUri());
    			if(file.exists()){
    				fis=new FileInputStream(file);
    				int ch=fis.read(bytes,0,BUFFER_SIZE);
    				while(ch!=-1){
    					output.write(bytes, 0, BUFFER_SIZE);
    					ch=fis.read(bytes, 0, BUFFER_SIZE);
    				}
    			} else{
    				//file not found 
    				String errorMessage="HTTP/1.1 404 File Not Found\r\n"+ 
    				        "Content-Type:text/html\r\n"+ 
    				        "Content-Length:23\r\n"+ 
    				        "\r\n"+ 
    				        "<h1>File Not Found</h1>";
    				output.write(errorMessage.getBytes());
    			}
    		}
    		catch (Exception e) {
    			System.out.println(e.toString());
    		}
    		finally{
    			if(fis!=null){
    				fis.close();
    			}
    		}
    	}
    }

    Response对象在HttpServer类的await()方法中通过传入套接字中获取的OutputStream来创建。

    Response类有两个公共方法:setRequest()sendStaticResource() setRequest()方法会接收一个Request对象为参数,sendStaticResource()方法用于发送一个静态资源到浏览器,如Html文件。

    HttpServer:

    package cn.com.server;
    import java.io.File;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    public class HttpServer {
    	/** 
       * WEB_ROOT is the directory where our html and other files reside. 
       * For this package,WEB_ROOT is the "webroot" directory under the 
       * working directory. 
       * the working directory is the location in the file system 
       * from where the java command was invoke. 
       */
    	public static final String WEB_ROOT=System.getProperty("user.dir")+File.separator+"webroot";
    	private static final String SHUTDOWN_COMMAND="/SHUTDOWN";
    	private Boolean shutdown=false;
    	public static void main(String[] args) {
    		HttpServer server=new HttpServer();
    		server.await();
    	}
    	public void await(){
    		ServerSocket serverSocket=null;
    		int port=8080;
    		try {
    			serverSocket=new ServerSocket(port,1,InetAddress.getByName("127.0.0.1"));
    		}
    		catch (Exception e) {
    			e.printStackTrace();
    			System.exit(0);
    		}
    		while(!shutdown){
    			Socket socket=null;
    			InputStream input=null;
    			OutputStream output=null;
    			try {
    				socket=serverSocket.accept();
    				input=socket.getInputStream();
    				output=socket.getOutputStream();
    				//create Request object and parse 
    				Request request=new Request(input);
    				request.parse();
    				//create Response object 
    				Response response=new Response(output);
    				response.setRequest(request);
    				response.sendStaticResource();
    			}
    			catch (Exception e) {
    				e.printStackTrace();
    				continue;
    			}
    		}
    	}
    }

    这个类表示一个Web服务器,这个Web服务器可以处理对指定目录的静态资源的请求,该目录包括由公有静态变量final WEB_ROOT指明的目录及其所有子目录。

    现在在webroot中创建一个html页面,命名为index.html,源码如下:

    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
      <h1>Hello World!</h1> 
    </body> 
    </html> 

    现在启动该WEB服务器,并请求index.html静态页面。

    所对应的控制台的输出:

    如此,一个简单的http服务器便完成了。

    目录

    • 第一篇 软件开发综合实践基础
    • 第1章 软件开发综合实践概述 2
    • 1.1 软件开发综合实践意义和目的 2
    • 1.1.1 软件企业对人才的要求 2
    • 1.1.2 软件开发综合实践的目标 2
    • 1.2 基本要求及实施过程 3
    • 1.2.1 综合实践的基本要求 3
    • 1.2.2 实施方式 3
    • 1.3 Java Web核心技术与开发模式 4
    • 1.3.1 Java Web核心技术 4
    • 1.3.2 Java Web开发模式 5
    • 1.4 编码规范 8
    • 1.4.1 为什么需要编码规范 8
    • 1.4.2 命名规范 9
    • 1.4.3 注释规范 10
    • 1.4.4 格式规范 11
    • 第2章 搭建Java Web应用设计与开发环境 13
    • 2.1 安装Java开发环境 13
    • 2.1.1 安装与配置JDK 13
    • 2.1.2 安装Java Web开发工具 14
    • 2.2 安装和使用MySQL 16
    • 2.2.1 下载与安装MySQL 16
    • 2.2.2 安装MySQL集成设计环境 19
    • 2.2.3 在NetBeans下管理MySQL数据库 20
    • 2.3 安装服务器 21
    • 2.3.1 安装Tomcat 21
    • 2.3.2 在NetBeans中注册Tomcat 23
    • 2.3.3 安装GlassFish 24
    • 2.4 UML建模工具安装 26
    • 2.4.1 使用NetBeans开发工具如何建模 26
    • 2.4.2 安装与集成VP-UML 27
    • 2.4.3 在NetBeans下使用VP-UML 29
    • 2.5 Java Web项目的建立与部署 34
    • 2.5.1 在NetBeans下建立与部署Java Web项目 34
    • 2.5.2 在Tomcat下部署Web应用程序 36   
    • 第二篇 基于基本Jave Web技术的开发   
    • 第3章 实训案例:企业信息展示系统 40
    • 3.1 系统分析 40
    • 3.1.1 需求描述 40
    • 3.1.2 用例分析 41
    • 3.1.3 功能描述 42
    • 3.1.4 其他需求 42
    • 3.2 系统设计 43
    • 3.2.1 系统功能结构 43
    • 3.2.2 数据库设计 43
    • 3.2.3 架构及程序结构 46
    • 3.2.4 领域模型设计 47
    • 3.2.5 系统配置与公共类设计 51
    • 3.2.6 界面结构设计 55
    • 3.3 数据访问层实现 59
    • 3.3.1 用户数据访问类实现 59
    • 3.3.2 产品分类数据访问类实现 63
    • 3.3.3 产品数据访问类实现 66
    • 3.3.4 新闻数据访问类实现 70
    • 3.3.5 反馈数据访问类实现 73
    • 3.4 业务逻辑层实现 76
    • 3.4.1 实现工厂类(Factory) 77
    • 3.4.2 用户业务逻辑类实现 78
    • 3.4.3 分类业务逻辑类实现 78
    • 3.4.4 产品业务逻辑类实现 79
    • 3.4.5 新闻业务逻辑类实现 79
    • 3.4.6 反馈业务逻辑类实现 80
    • 3.5 控制层实现 81
    • 3.5.1 设计控制层基类 81
    • 3.5.2 用户控制类实现 82
    • 3.5.3 分类控制类实现 84
    • 3.5.4 产品控制类实现 86
    • 3.5.5 新闻控制类实现 89
    • 3.5.6 反馈控制类实现 91
    • 3.6 视图层实现 93
    • 3.6.1 标签设计 93
    • 3.6.2 用户视图实现 97
    • 3.6.3 分类视图设计 100
    • 3.6.4 产品视图实现 101
    • 3.6.5 新闻视图设计 105
    • 3.6.6 反馈视图设计 107
    • 第4章 实训课题:网络新闻中心系统 110
    • 4.1 项目要求 110
    • 4.1.1 功能要求 110
    • 4.1.2 非功能性要求 110
    • 4.2 设计与实现要求 111
    • 4.2.1 分析和设计要求 111
    • 4.2.2 系统实现要求 111
    • 4.3 界面原型 112
    • 4.3.1 前台 112
    • 4.3.2 后台 115
    • 第三篇 基于JSP+Struts2+Hibernate技术架构的开发   
    • 第5章 实训案例:网络书城系统 124
    • 5.1 系统分析 124
    • 5.1.1 需求描述 124
    • 5.1.2 用例分析 124
    • 5.1.3 功能分类 125
    • 5.1.4 其他需求 126
    • 5.2 系统设计 126
    • 5.2.1 系统功能结构 126
    • 5.2.2 数据库设计 127
    • 5.2.3 架构及程序结构 129
    • 5.2.4 领域模型设计(实体、接口设计) 130
    • 5.2.5 系统配置 134
    • 5.2.6 公共类设计 137
    • 5.2.7 界面结构设计 140
    • 5.3 数据访问层实现 142
    • 5.3.1 数据访问类实现 143
    • 5.3.2 建立ORM文件 147
    • 5.3.3 数据访问层配置 152
    • 5.4 业务逻辑层实现 152
    • 5.4.1 业务逻辑类实现 152
    • 5.4.2 业务逻辑层配置 153
    • 5.5 控制层实现 153
    • 5.5.1 控制层类的实现 153
    • 5.5.2 控制层配置 159
    • 5.6 表现层实现 161
    • 5.6.1 标签设计 161
    • 5.6.2 公共网页设计 163
    • 5.6.3 用户视图实现 164
    • 5.6.4 分类视图实现 169
    • 5.6.5 图书视图实现 172
    • 5.6.6 订单视图实现 178
    • 5.6.7 购物车视图实现 181
    • 第6章 实训项目:软件商城系统 183
    • 6.1 项目要求 183
    • 6.1.1 功能要求 183
    • 6.1.2 非功能性要求 183
    • 6.2 设计与实现要求 184
    • 6.2.1 分析和设计要求 184
    • 6.2.2 系统实现要求 184
    • 6.3 界面原型 185
    • 6.3.1 前台界面 185
    • 6.3.2 后台界面 187  
    • 第四篇 基于SSH技术架构的开发   
    • 第7章 实训案例:基于SSH的网上人才中心系统 195
    • 7.1 系统分析与设计 195
    • 7.1.1 需求描述 195
    • 7.1.2 用例分析 195
    • 7.1.3 功能描述 197
    • 7.1.4 其他需求 198
    • 7.2 系统设计 198
    • 7.2.1 系统功能结构 198
    • 7.2.2 数据库设计 198
    • 7.2.3 架构与程序结构 203
    • 7.2.4 领域模型设计(实体、接口设计) 205
    • 7.2.5 系统配置与公共类设计 207
    • 7.2.6 界面结构设计 211
    • 7.3 数据访问层实现 214
    • 7.3.1 数据访问类实现 214
    • 7.3.2 建立ORM文件 218
    • 7.3.3 数据访问层配置 222
    • 7.4 业务逻辑层实现 224
    • 7.4.1 业务逻辑类实现 224
    • 7.4.2 业务逻辑层配置 225
    • 7.5 控制层实现 226
    • 7.5.1 控制层类的实现 226
    • 7.5.2 控制层配置 235
    • 7.6 表现层实现 237
    • 7.6.1 主页的登录状态标签设计 237
    • 7.6.2 公共网页设计 238
    • 7.6.3 管理员视图实现 240
    • 7.6.4 个人用户视图实现 242
    • 7.6.5 企业视图层设计 252
    • 7.6.6 招聘(工作)视图层设计 255
    • 7.6.7 申请(应聘)视图层设计 258
    • 7.6.8 新闻视图层设计 261
    • 第8章 实训课题:物流信息系统项目 264
    • 8.1 项目要求 264
    • 8.1.1 功能要求 264
    • 8.1.2 非功能性要求 264
    • 8.2 设计与实现要求 265
    • 8.2.1 分析和设计要求 265
    • 8.2.2 系统实现要求 265
    • 8.3 界面原型 266
    • 8.3.1 前台界面 266
    • 8.3.2 后台 269

    上一篇:Modern PHP

    下一篇:Java从入门到精通

    展开 +

    收起 -

     
    JAVA WEB 相关内容
    学习笔记

    电子书 编程教程 PC软件下载 安卓软件下载

    Copyright 2018-2020 xz577.com 码农之家

    本站所有电子书资源不再提供下载地址,只分享来路

    免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

    版权投诉 / 书籍推广 / 赞助:QQ:520161757