ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java Web初探

2019-03-09 15:02:23  阅读:239  来源: 互联网

标签:Web Java 容器 JSP https 初探 Servlet


 

一、网页的设计

这部分就是通常所说的“前端部分”。

所涉及的技术主要有html,css,JavaScript。

1.Html:HTML 不是一种编程语言,而是一种标记语言。HTML 使用标记标签来描述网页。

在学习的过程中我觉得表单是一个重要的组件。表单通过<form></form>标签来设置,通过设置其属性action可定义表单提交后所触发的文件(?),设置属性method可定义提交的方式(post or get)。能用于收集信息。

2.CSS:CSS 指层叠样式表 (Cascading Style Sheets),样式定义如何显示 HTML 元素,样式通常存储在样式表中,解决内容与表现分离的问题。

3.JavaScript:是一种轻量级的编程语言,可插入 HTML 页面的编程代码。是互联网上最流行的脚本语言。

三者间的关系如下:

1)       HTML 定义了网页的内容

2)       CSS 描述了网页的布局

3)       JavaScript 网页的行为

 

这里的话要提一下我在学习过程中所接触到的一个前端框架:bootstrap。

Bootstrap不是什么高深的东西,就是一些几乎所有的 Web 项目中都需要的组件,有了这些组件,就可以在不需要知道太多的 HTML + CSS 知识的情况下构建出精美的网页。

参考链接:

Bootstrap中文网:https://v3.bootcss.com/components

https://blog.csdn.net/u010028869/article/details/43838049

  https://blog.csdn.net/GUANYAQI1996/article/details/79588075

 

二、数据库及其连接(“后端”)

1.数据库:

在本次项目中,所用到的数据库为mysql。

Mysql的安装和使用参考了以下的链接:

https://blog.csdn.net/baidu_21833433/article/details/58139793

https://www.jianshu.com/p/2337d8fd0863

https://blog.csdn.net/fengchen0123456789/article/details/78604987

实际上想要快速下载mysql的话,可以考虑建站集成软件包XAMP(Apache+MySQL+PHP+PERL)

 

2.数据库连接接口JDBC

是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。(据说这种为多种数据库提供统一接口也是jsp方案相较PHP方案的优势)

JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范。

JDBC与数据库驱动的关系:接口与实现的关系。

 

JDBC规范(掌握四个核心对象):

DriverManager:用于注册驱动

Connection: 表示与数据库创建的连接

Statement: 操作数据库sql语句的对象

ResultSet: 结果集或一张虚拟表

 

使用JDBC之前,需要下载Java连接MySQL的最新驱动包,并通过intellij idea导入。

参考链接:https://blog.csdn.net/kuangdacaikuang/article/details/82940901

如果使用JDBC的过程中出现Error:(11, 72) java: 程序包com.mysql.jdbc不存在 的错误,就是没有正确导入驱动包的原因。

 

三、servlet和jsp

前面讲完了前端和后端的知识,现在来讲一下“前端”和“后端”如何实现交互。

 

1.Servlet

概要说明:servlet 是运行在 Web 服务器中的小型 Java 程序(即:服务器端的小应用程序)。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。

(可以在servlet类里接受web客户端的信息并存储到数据库里)

 

(1)Servlet 是使用Java程序语言所编写的一个Java类,通过Web容器(Container)的加载、初始化,受到容器的管理才能成为一个Servlet。

(2)Servlet 是运行在容器之中,容器是由服务器上的JVM所启动的,JVM本身就是服务器上的一个可执行程序。

(3)容器不是HTTP服务器,Web容器是一个用Java所编写的程序,用来加载、管理Servlet。我们所编写的Servlet程序是没有main函数的,所以需要通过容器来启动Servlet程序,找到相应的doGet()方法或doPost()方法,从而进一步处理浏览器的请求。

 

顺着这个思路,我们引入Tomcat。Tomcat可以用做web容器,同时Tomcat本身附带一个简单的http服务器,因此只要在IDEA配置好Tomcat就同时配置好http服务器和web容器。许多人都以为Tomcat就是Http服务器,或是以为Web容器就是HTTP服务器,其实不然,Tomcat是Web容器,其实可以与其他HTTP服务器相结合,像是Apache。

 

参考链接:

Web应用程序简介:https://www.cnblogs.com/yangyquin/p/5397049.html

关于如何在IDEA中配置Tomcat:

使用idea编写你的第一个java web程序:

http://baijiahao.baidu.com/s?id=1579410470074074476&wfr=spider&for=pc

 

 

2.JSP

概要说明:

1)       JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,容器会将JSP网页转译为Servlet并加载到容器中进行管理,所有的JSP最后都以Servlet的实例存在于容器中。

2)       它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

3)       JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。

4)       用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

 

 

现在来展示一下客户端和服务器端的响应流程:

 

 

a)       Web浏览器发送HTTP请求到服务端,被Controller(Servlet)获取并进行处理(例如参数解析、请求转发)

b)       Controller(Servlet)调用核心业务逻辑——Model部分,获得结果

c)        Controller(Servlet)将逻辑处理结果交给View(JSP),动态输出HTML内容

d)       动态生成的HTML内容返回到浏览器显示

 

 

以上就是,最近java web的一个总结。

 

 

最后将展示一下收集到的三个建站方案。

方案一:APACHE+PHP+MYSQL

PHP语法简单,非常易学易用,很利于快速开发各种功能不同的定制网站,PHP因为结构上的缺陷,使的PHP在复杂的大型项目上的开发和维护都比较困难。

方案二:ASP+COM+SQLServer

和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。

方案三:JSP(JavaServer Pages)是Sun公司推出的一种动态网页技术。JSP技术是以Java语言作为脚本语言的。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。

 

 

 一些问题及解决方案:

1. 解决IDEA中项目出现cannot resolve method ‘XXXXX(java.lang.String)’问题

https://blog.csdn.net/weixin_39208819/article/details/82320818

2.本项目为小组成员合作完成,用git做版本控制。

参考链接:在IDEA上Git:https://blog.csdn.net/weixin_39274753/article/details/79722522

标签:Web,Java,容器,JSP,https,初探,Servlet
来源: https://www.cnblogs.com/sureyet/p/10500806.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有