⑴ java web程序设计要学些什么
一、 HTML CSS Javascript
正如严老师所说:“Java Web 的基础是建立在HTML这套标签的地基之上的”。所以学习Java Web 就要学习HTML的标签,开始对HTML的理解并不是很深,本以为作为程序员对HTML的重点掌握无非就是From表单,哦,对了,还有Table,<a herf=””>,文档的格式<head><body>等等等等,而对于CSS,更觉得这对于作为程序员的我们没有什么太大的必要,那些事情完全是由美工来做的,而对于Javascript则觉得他应当是与vbscript一个时代的脚本语言,其作用无非是给页面添加一些花哨的动态效果没有什么实际意义,但是当我接触到更多的新技术如AJAX的时候便觉得我所掌握的远远不够,对于AJAX而言你学要知道每个细节从而能够设计出既美观又具有人性化的用户界面。而AJAX所以依托的基础便是Javascript、CSS、HTML、XML,其思想在于使用XMLHttpRequest实现异步调用把数据偷偷的下载到客户端从而使得用户无需刷新界面从而得到更好的上网体验,此三种技术在AJAX中发挥的淋漓尽致。这才知道那本OReilly的 “Javascript犀牛书”并不是盖的。这三个基础性的东西还是学要好好的学习,老的技术相结合也能焕发出新的光彩。
二、 TomCat
总觉的这是一个让人头疼的东西,学习的时候常需要给他进行很多项配置,首先是虚拟路径,在server.xml文件夹下加上<Context path=”/test” docBase=”F:\dwb”>,有一次给同学安装Tomcat6.0把Tomcat5.5里面老师写好的server.xml直接粘贴到了Tomcat6.0的cong文件夹下竟不能运行,这才知道版本不同随便粘贴后果是很可怕的,还是老老实实的把<Context path=”/test” docBase=”F:\dwb”>这句话粘贴上才是。东西有时命名目录里的东西已经更改了,TomCat也已经重新启动了,但网页上显示的依旧是以前的东西,还得把C:\Program Files\Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost\这个目录下的虚拟路径删掉(如经典的test目录)。在做第9、10、11章的例子的时候还要把WEB-INF文件夹放到虚拟目录的根目录下否则会找不到WEB-INF文件夹,总之问题多多,问题越多,自己的经验也就越多。
三、 JSP基本语法
1、 < % %>在jsp页面中插入Java代码,<%= %>表达式输出语句
2、 JSP指令和动作:指令主要是<%@page %>、<%@include %>;动作主要是<jsp:forward>、<jsp:include>、<jsp:usebean>、<jsp:setProperty>、<jsp:getProperty>
3、 四种属性的作用域page、request、session、appliction,一个比一个大,page只对当前页面有效,request是在两个页面跳转的时候包括服务器端的跳转,seesion只要浏览器不关闭,属性一直存在。Appliction只要服务器(如Tomcat)不关闭它一直都存在
总之我感觉JSP的基本语法还是很简单的无非就是几个标签指令什么的,稍需要注意的是<jsp:forward>是服务器端的跳转URL地址不变,<%@include %>、<jsp:include>主要是包含静态和动态的区别。
四、 JSP内置对象
Request:主要作用接受表单传来的数据,
Response:主要是可以像客户端发送头部信息和重定向sendRedirect
Out:输出一些东西
Exception:一些异常信息
Config:这个对象比较厉害,它能获得web.xml中的许多信息,如<application>中的值,<servlet>中的parm值等
Session和applicition对象主要是用他们的setAttribute和getAttribute方法存取一些属性值,不同之处在于他们的作用域
五、 JDBC
与数据库进行连接,这是学习程序的重头戏,但也不是很难,主要是记住连接数据库的一些流程
1、 Class.forName(驱动程序字符串)
主要有四种驱动方式,字符串也各不相同,我们常用的是连接access的jdbc odbc bridge字符串为sun.jdbc.odbc.jdbcodbcdriver
2、 DirverManger.getConnection(DBURL)
DBURL字符串为 Jdbc:odbc:数据源名称
3、新建statement对象
4、执行exectuQuery或exectuUpdata方法
5、逆序关闭数据库
六、结语:设计模式 与开发框架
DAO模式已经过时了,现在的主流模式是MVC;其中主要用了servlet充当控制层, 还需要在web.xml中配置servlet映射,它主要是起到数据控制流向的作用,现在说有主流的框架都是使用MVC模式,如SSH,但是这些框架都没有想微软vasual Studio那样的可是控件(虽然JavaBen是一些可复用的类),2005年推出的JSF开发框架弥补了这一缺陷,相信在未来作为SUN官方标准推出的JSF开发框架可能会成为主流框架,因为ESRI的ArcGIS Server就是依托于JSF框架开发的产品,相信JSF会成为以后开发框架的主流!
⑵ 开发的JAVA WEB程序部署在服务器集群的哪一个服务器上
阁下在没有分布式集群部署经验的前提下能画出这样的架构图让人佩服
本来我是不敢回答这些问题的,因为本身我也没有集群部署经验,但是一来没有人帮忙回来二来我也看过一点这些相关的书籍,所以可以把我知道的给你说下,估计能帮助你30%。
整个架构部署用到了集群部署(1:2)、动静分离、缓存服务、拆分数据库等高并发处理技术,属于大型系统的模型。
据我所知,集群1:2是1负载分发器、2web服务器,(以Apache+tomcat集群为例),那么Director server应该安装Apache,而Real Server应该安装tomcat,至于java web项目在tomcat下面即可。
而你的架构图中还有动静分离机制,理论上静态文件服务器也应该有java web项目才对,不然静态文件服务器如何取静态文件呢。tomcat对静态文件处理不是很好,所以很多人推荐用Nginx作为载体。
缓存和集群数据库我不了解,不发表任何谬论。
session会话就是指的httpsession:一个客户端一个session会话,在客户端与服务器保持通信期间都会需要这个会话,所以集群服务器一定要保存这个session。问题是客户端的URL请求被director server均衡分发了,可能第一次访问的是第一个real server,第二次访问的是第四个real server,如果session只在第一个real server保存,而第四个real server就会认为客户掉线拒绝请求,所以你要考虑四个real server用一种机制保存共享所有客户的session。一些经典的共享session方式有:session复制、session粘连、session统一独立存储等。
建议看下一些集群架构方面的书籍,比如《大型网站系统与java中间件实践》。
⑶ 初学者如何迅速学习java、web前端开发
多敲!多敲!多敲!
基本上每一个初学者都会遇到这样的问题,包括我之前也是一样,导致的原因就是自己不喜欢动手,就算自己有了思路,却不知道从何下手;因为在你的脑海中一直对这些题目都是存在于数学上面的操作,真的要使用代码去实现的时候你脑子就会一篇空白
一个代码写多了的人,不管你的需求再难,他也能写出一个基本的框架衡拆出来,也不至于无从下手,因为代码写多了的人都会总结出一套规律,开发都是这一个套路
《2020最新Java基础精讲视频教程和学习路线!》
就跟你建房子一样,基本碰慧的框架搭建完毕之后,只需要慢慢砌砖就行了
所以,学习Java最注重的就是实操,大家都知道去一个公司之后都是动手敲代码,而不是在旁边指挥,因为公司不会给你这么大的权力,你也达不到这样的级别,所以公司要的是能够写代码的人,你的理论在这里没有太大的作用
站在岸上学不会游泳的道理大家都应该知道
Java学习路线
第一阶段:
学习java首先是得安装配置jdk
下面开始我们愉快且掉头发的java之旅
1、入门的基本礼仪:HelloWord
2、Java基础语法
3、Java条件结构
4、Java循环结构
第二阶段:
数组:数组作为java里面的第一个可以存储数据的容器,也是后面集合的基础
第三阶段:
面向对象:万物皆可对象,这也是java的核心思想,编程的时候也要面向对象编程,符合Java的编程规范
JVM:了解Java中的变量、常量、引用在JVM中国的存储区域
第四阶段:
Java常用类库:String字符串的应用、Math和Date、集合框架、异常处理、反射
第五阶段:
IO流:字节流、字符流、其他流、文件读写及编辑、文件上传下载
第六阶段:
多笑拦答线程与网络编程
第七阶段:数据库
Mysql数据库:
数据库基础
数据库的安装
使用语句建表
使用语句进行增、删、改、查
多表查询
子查询
复合查询
分页查询
分组查询
数据字典
访问控制
存储过程
可视化工具的使用
JDBC:
JDBC基础
ORM
JDBC高级
第八阶段:前端基础
HTML:
HTML基础
HTML常用标签
HTML表格
HTML表单
HTML多媒体
网页整体结构
CSS:
CSS选择的样式
CSS文本样式
CSS背景和列表
CSS盒子模型
Float浮动
CSS定位
CSS网页布局
CSS网页布局基础
JS:
JavaScript基础语法
JavaScript流程控制语句
JavaScript函数
JavaScript内置对象
基础
事件
JavaScript实现轮播效果
JQuery:
Ajax基础
JQuery选择器
JQuery属性操作
JQuery常用函数
JQuery事件处理
JQuery异步请求
第九阶段:Javaweb
JAVAWEB:
JAVAWEB核心基础
JAVAWEB中jsp及java脚本指令
Jsp中隐式对象
Servlet核心处理器
Jsp与servlet实现登录
JAVAWEB中的session
JAVAWEB的会话跟踪
Jsp动作应用
Jsp的EL表达式
JSTL标签使用
JSTL循环迭代
JSTL EL综合练习
AOP编程
Filter过滤器应用实例
JAVAWEB文件上传下载
MVC模型
第十阶段:高级框架
构建javaweb应用:
框架概述
使用注解把类托管给spring
Lod4j
Spring整合JDBC
JDBC Template实现数据操作
SpringMVC应用基础核心
视图解析器和注解
控制请求方法的参数设置
视图转发、重定向
Mybatis框架的应用:
Mybatis黑心基础概述
Mybatis全局配置
Mybatis基本查询映射
Mybatis更新映射和缓存
Mybatis查询结果的封装和高级映射
Mybatis动态SQL
SPring整合Mybatis
第十一阶段:扩展内容
Junit
设计模式
GIT/SVN代码管理器
Redis
Maven
Springboot
Springcloud
Linux
Shiro
Lucene
Vue
Oracle
Spring Data JPA
抄代码虽然是程序员的日常,但是初学者非常不建议去抄代码,抄的代码只会让你越抄越乱,从而使自己的思维就依赖在了网络上,自己一点思维都没有,那有如何去提升自己呢
代码一定要有自己的思路,然后再把自己的思路转为代码实现,这才是学习Java的正确方式
⑷ 学javaweb的,前台的静态页面也要自己布局吗
不需要,页面由美工或者 Web 设计人员来做的。对于程序员来说,那些 CSS 和美术功底还达不到那种层次。
⑸ 建一个java web项目的主界面是使用frameset进行布局吗后面的就是按前面的布局方式得到的吗
第一:JAVAWEB主页面,用frameset布局是不错的
第二:你所得前后的布局,从整体看来是不太符合的
你的头部和右侧对应不对啊。
应该:
而左侧的下部分,你应该有7部分的javascript。
希望能帮到你,
-------你懂得
⑹ java,web程序设计要学些什么
Java Web程序设计分为5部分共19章,包括入门、JSP编程、Servlet和JavaBean开发、应用开发与框架、其他内容。
第1章 Java Web开发环境配置
1.1 B/S结构
1.2 服务器安装
1.2.1 服务器的作用
1.2.2 获取服务器软件
1.2.3 安装服务器
1.2.4 测试服务器
1.2.5 配置服务器
1.3 IDE安装
1.3.1 IDE的作用
1.3.2 获取IDE软件
1.3.3 安装IDE
1.3.4 配置IDE
1.4 第一个Web项目
1.4.1 创建一个Web项目
1.4.2 目录结构
1.4.3 部署
1.4.4 常见错误
1.5 本章总结
1.6 上机习题
第2章 HTML基础
2.1 静态网页制作
2.1.1 HTML简介
2.1.2 HTML文档的基本结构
2.2 HTML中的常见标签
2.2.1 文字布局及字体标签
2.2.2 列表标签
2.3 表格标签
2.3.1 表格基本设计
2.3.2 合并单元格
2.4 链接和图片标签
2.5 表单标签
2.6 框架
2.7 本章总结
2.8 上机习题
第3章 JavaScript基础
3.1 JavaScript简介
3.1.1 第一个JavaScript程序
3.1.2 JavaScript语法
3.2 JavaScript内置对象
3.2.1 window对象
3.2.2 history对象
3.2.3 document对象
3.2.4 location对象
3.3 本章总结
3.4 上机习题
第4章 JSP基本语法
4.1 第一个JSP页面
4.2 注释
4.3 JSP表达式
4.4.JSP程序段
4.5 JSP声明
4.6 URL传值
4.7 JSP指令和动作
4.7.1 JSP指令
4.7.2 JSP动作
4.8 本章总结
4.9 上机习题
第5章 表单开发
5.1 认识表单
5.1.1 表单的作用
5.1.2 定义表单
5.2 单一表单元素数据的获取
5.2.1 获取文本框中的数据
5.2.2 获取密码框中的数据
5.2.3 获取多行文本框中的数据
5.2.4 获取单选按钮中的数据
5.2.5 获取下拉菜单中的数据
5.3 捆绑表单元素数据的获取
5.3.1 获取复选框中的数据
5.3.2 获取多选列表框中的数据
5.3.3 获取其他同名表单元素中的数据
5.4 隐藏表单
5.5 其他问题
5.5.1 用JavaScript进行提交
5.5.2 和文乱码问题
5.6 本章总结
5.7 上机习题
第6章 JSP访问数据库
6.1 JDBC简介
6.2 建立ODBC数据源
6.3 JDBC操作
6.3.1 添加数据
6.3.2 删除数据
6.3.3 修改数据
6.3.4 查询数据
6.4 使用Prepared Statement
6.5 事务
6.6 使用厂商驱动进行数据库连接
6.7 本章总结
6.8 上机习题
第7章 JSP内置对象(1)
7.1 认识JSP内置对象
7.2 out对象
7.3 request对象
7.4 response对象
7.4.1 利用response对象进行重定向
7.4.2 利用response设置HTTP头
7.5 Cookie操作
7.6 本章总结
7.7 上机习题
第8章 JSP内置对象(2)
8.1 利用session开发购物车
8.1.1 购物车需求
8.1.2 如何用session开发购物车
8.2 session其他API
8.2.1 session的其他操作
8.2.2 SessionId
8.2.3 利用session保存登录信息
8.3 application对象
8.4 其他对象
8.5 本章总结
8.6 上机习题
第9章 Servlet编程
9.1 认识Servlet
9.2 编写Servlet
9.2.1 建立Servlet
9.2.2 Servlet运行机制
9.3 Servlet生命周期
9.4 Servlet与JSP内置对象
9.5 设置欢迎页面
9.6 在Servletr辛读取参数
9.6.1 设置参数
9.6.2 获取参数
9.7 使用过滤器
9.7.1 为什么需要过滤器
9.7.2 编写过滤器
9.7.3 需要注意的问题
9.8 异常处理
9.9 本章总结
9.10 上机习题
第10章 JSP和JavaBean
10.1 认识JavaBean
10.1.1 编写JavaBean
10.1.2 特殊JavaBean属性
10.2 在JSP扣使用JavaBean
10.3 JavaBean的范围
10.4 DAO和VO
10.4.1 为什么需要DAO和VO
10.4.2 编写DAO和VO
……
第11章 EL和JSTL
第12章 Ajax入门
第13章 验证码和文件上传、下载
第14章 MVC和Struts基本原则
第15章 Struts标签库
第16章 Struts资源文件和错误处理
第17章 Struts 2基本开发
第18章 JSP自定义标签
第19章 Web网站安全
⑺ JavaWeb项目到底该使用什么框架
每个人都有自己的理解,我肯定有不正确的地方,权且当抛砖引玉
1.有的人认为使用了SSH可以大大提高系统速度,其实不然,我两个月前遇到的一个银行反洗钱项目就使用struts1.2 + jdbc开发,数据库20G左右,同样正常运行,速度还可以,我认为SSH提高的是非视图层的开发效率,减少了维护难度,对于运行速度倒不一定
2.有的人认为只要会SSH的基本组合就可以了,其实不然,它们每个都是很多的版本,有些版本存在本质区别,如struts1和struts2的本质不同,spring2和spring2.5的注解配置,如果一点不考虑,一股脑采用配置文件,最终的结果只会被配置文件淹没,反而提高了维护难度,当然,太多的注解也让人昏迷,所以我认为必须对这些重点差异版本都进行学习,至少使用一会,自己去体会,找到配置文件和注解的平衡,从而提高开发效率,减少维护难度
3.有的人认为hibernate好啊,有了它就万事大吉,其实不然,经过实践证明,它无法对复杂sql进行良好处理,事实上,实际项目中对复杂sql的需求相当高,远比增删改多,比如,我曾经做过的反洗钱系统中,三个大表,即使分表后依然千万级的数据量,并且三表还存在关联,使用hibernate,无法想象,所以我们使用ibatis2来专门处理复杂查询sql,以及批量修改和删除,使用hibernate来处理其他操作
这里给一个SQL,看谁能使用HQL写出来,如果有,我佩服
Sql代码 收藏代码
select datename(year,a.tr_date)+datename(month,a.tr_date)+(case when day(a.tr_date)<10 then '0'+datename(day,a.tr_date) else datename(day,a.tr_date) end ) as trade_date,
datename(year,a.analyse_date)+datename(month,a.analyse_date)+(case when day(a.analyse_date)<10 then '0'+datename(day,a.analyse_date) else datename(day,a.analyse_date) end ) as analyse_date,
datename(year,a.rep_date)+datename(month,a.rep_date)+(case when day(a.rep_date)<10 then '0'+datename(day,a.rep_date) else datename(day,a.rep_date) end ) as rep_date,
a.*,
d.*,
s.file_name
from tbriskshow a, tbriskshow_detail d, tbriskshow_relation r, rep_riskshow_file s
where a.check_flag > 2
and a.sus_flag = 2
and r.id = a.id
and r.tbriskdetail_id = d.id
and a.status = 0
and a.type = 5
and s.riskshow_id = a.id
4.合理的配置文件布局很重要,项目开发才能正常进行,不要以为将所有struts,spring配置信息放置在一个文件中会很爽,如果你感觉到爽,那是因为你做的项目太小,所以全部按某种规范分开放置,使用总配置文件来引用这些配置
5.再说说视图层,当前无外乎是JSP、CSS、JS、EL、JSTL、JSF、Jquery、Ext等技术,再高级点的就是使用JSP自定义标签技术将某些东西封装起成标签表单和表格,供统一调用,其实不管怎么样,由于每个人技术层次不同,到了后面维护必可避免的难搞,所以我结合我自己做过、参与过、看过的项目,认为视图层可以这样做:将所有控件封装(有人可能会说,这得封装多少东西啊,其实主要封装了表单、表格、树形、复选下拉、对话框,就能解决大部分问题),开发人员使用标准XML来配置界面以及其方法,再通过一个标准XML格式和服务器(SSH、存储过程)进行交互,这样,哪怕一个对界面完全没有感觉的人也能做出漂亮且风格完全统一的页面,并且维护相对容易,以下是一个示例
页面配置XML:
<!-- 菜单操作基础表单 -->
<view id="10000011_form_base_conf">
<column>2</column>
<defButtons>true</defButtons>
<col type="number" field="cdbh" readonly="true" value="-1">菜单编号</col>
<col type="number" field="fjbh" readonly="true" value="-1">父级编号</col>
<col type="input" field="cdmc" must="true">菜单名称</col>
<col type="select" field="sfzy" must="true" option="是:1|否:0">是否枝叶</col>
<col type="number" field="pxh">排序号</col>
<col type="input" field="ljdz" must="true">连接地址</col>
</view>
<!-- 添加菜单 -->
<view id="10000011_form_add_conf">
<ext>10000011_form_base_conf</ext>
<add_func_id>10000012</add_func_id>
</view>
<!-- 修改菜单 -->
<view id="10000011_form_edit_conf">
<ext>10000011_form_base_conf</ext>
<edit_func_id>10000013</edit_func_id>
<delete_func_id>10000014</delete_func_id>
</view>
数据访问XML:
<func id="10000012">
<param name="cdmc" type="varchar" nullValue="" />
<param name="sfzy" type="int" nullValue="0" />
<param name="fjbh" type="int" nullValue="0" />
<param name="pxh" type="int" nullValue="0" />
<param name="ljdz" type="varchar" nullValue="" />
</func>
6.最后说说JavaWeb的未来,当然我个人认为的未来,随着Iphone,Ipad,安卓的普及,JavaWeb进军手机是必然的,就像当年PC上用PB,VB做的MIS,CRM等管理类桌面程序被大清洗一样(本人原来也是个PB程序员,后来转的Java,现在还依稀记得datewindow的风采),所以我认为JavaWeb的未来就是手持设备浏览器,服务器端其实应该没有太大变化,主要前端UI部分:多风格、多点触控式完全替代传统的表格、表单都是可能的,现在已经有不少框架出现,JQtouch、Jquery Mobile、Sencha Touch等等,当然这些我自己也还在学习中,谈不出什么,但我相信这就是未来,让我们拭目以待吧