第一篇:java WEB 学习路线 v0.1
1.J2SE 和Eclipse工具的使用
集合类
* List / Set / Map / Iterator
Java反射机制
正则表达
2.数据库 Mysql
什么是数据库
基本语法: 建表删表、Mysql 字段类型、单表增删改查
条件控制语法:where / and / or / desc
Mysql 内置函数
3.JDBC基础 即:java连接数据库
JDBC应用接口(API)开发数据库应用程序、实现将面向对象的设计映射到关系型数据库中、设计多层的数据库应用程序、数据库连接池技术。
4.HTML_CSS_Javascript(静态页面基础)
* HTML_CSS_Javascript基础语法
5.Servlet and JSP
* Tomcat基础
* Servlet基础 Web.xml配置基础
* Cookie
* Session
* Application
* JSP语法基础
6.Myeclipse 7.1的使用
7.学生信息管理系统
项目实战
8.JSTL
Java 标准标签库
9.分层思想 以及MVC
10.BBS网站论坛
项目实战
11.XML + AJAX
XML语法规范
DOM和SAX解析方式
Dom4j JDOM、JAXP解析实践
AJAX 简单异步请求
12.SSH
即三大主流框架spring、struts、hibernate
13.UML 统一建模语言 Rational Rose
14.EJB 3.0
第二篇:javaWeb学习[小编推荐]
JavaWeb学习笔记___d9.txt
2010-12-14 22:51
Session(会话)
Session对象
1、存在于服务器端
2、依赖于线程
3、Session的生命周期,跟一次浏览器窗口有关,只要窗口不关闭,Session便存在,所以称会话。
Session1、技术内核使用cookie:
session参在与服务器端
服务器端为多个session创建不同的session id
把session id以cookie的形式送入到客户端
request.getSession()内涵是:在cookie中查找
session id,若cookie中存在sessionId,则根据
sessionId,将sessionID对应的session找到,并返回;若cookie中并不存在sessionID,服务器端创建session,并将sessionID写入到Cookie中。
2、当关掉对话窗口(结束一次会话)时,session并没有被删除,只是关掉对话窗口时,cookie被清空
无法再获得sessionID,无法找到对应的session,但是session还是存在于服务器端。
若想真正删除session,需要调用HttpSession中的invalidate()方法,使得session失效。
3、服务器为了考虑效率,不会让无用的session存在很久,Http协议是无连接协议,服务器端无法判断客户端是否关闭“会话”,所以服务器设置了失效时间。若用户在了段时间内,不操作session,则系统删除session。
我们可以设置此时间setMaxInactiveInterval(),但不推荐用户自行设置。
4、session技术在很大程度上,依赖于Cookie,若Cookie被禁用,或浏览器不支持Cookie,则session就无法使用。
5、为了解决第四点所引申的session不可用的问题。我们使用URL重写,将sessionID通过地址栏提交参数,发给服务器端。
使用response.encodeURL()在地址栏中加载sessionID通过
request.getParameter(jsessionid)得到sessionID
a、String url encodeURL(String url);通过超链接,重新发出请求,此请求会在地址之后自动加上sessionID及其ID值,此方法又被子称为URL重写,或重新封装。
b、String url encodeRedirectURL(String url);将地址封装成sendRedirect方法所需要的地址,并在此地址后加入sessionID
Servlet API小结:
HttpServletRequest:接口
1、setAttribute()、getAttribute()、getAttributeNames
getParameter()//只能获得表单中的内容
2、getCharacterEncoding()、setCharacterEncoding()
获得、设置request中的数据编码方式
3、getContentType()得到MIME,即IE文件打开的方式
4、Cookie[] getCookies()
得到当前所有的cookie5、getSession()
获得或创建session6、getRequestDispatcher(String path)将目标页面封装,为了forward()进行页面转向。
7、getRequestedSessionId()得到一个session的id
总结:
request对象封装了客户端的请求和相关信息。
包括:
1、cookie2、封装http协议的报头(请求方式、请求服务器的端口、请求服务器ip地址、编码方式、请求的项目用的名字、请求消息的长度、浏览器的信息、客户端信息„„)
3、表单数据
HttpServletResponse:接口(响应)
用它跟客户端联系,并且向客户端发送数据
1、getCharacterEncoding()得到向客户端发送数据的默认编码方式。
2、getContentType()得到向客户端发送数据的默认类型(html或者jpeg等等)。
3、getOutputStream()得到与客户端建立的输出字节流,传输二进制。
4、getWriter()得到与客户建立的输出字符流,传输文本文件。
5、setCharacterEncoding()设置的是要发送给客户端的数据的编码方式。
6、setContentType(String type)设置并告知客户端,执行这些二进制时,用何种类型打开(html、jpeg等等)。
7、addCookie(Cookie cookie)将cookie的键和键值成对的送到客户端
8、一些的set方法用来指定客户端运行时的一些属性。例:缓存、打开方式、消息头的控制等等
9、encodeURL(String url)、encodeRedirectURL(String url)**在地址后追加session的id,用来实现cookie被禁用后,session依然可以使用。
10、sendRedirect(String location)页面的重定向
Cookie:类
1、Cookie(String name,String value)创建Cookie并将键,键值,存入到Cookie中
2、getMaxAge(int)设置Cookie的生命服周期,当参数是负数时:窗口(会话)被关掉时,清空Cookie3、getName()获得Cookie中的键
4、getValue()获得Cookie中的健值
HttpSession:接口
1、getAttribute(String name)、setAttribute(String name)
2、getId()获得session的唯一标识id3、getMaxInactiveInterval()、setMaxInactiveInterval()得到和设置session的失效时间
4、invalidate()使得session失效
5、isNew()布尔类型,判断session是否是新创建的HttpServlet:类
1、doGet(HttpServletRequest req,HttpServletResponse resp)
当用户以get方式发出请求时,servlet调用此方法
2、doPost(HttpServletRequest req,HttpServletResponse resp)当用户以post方式发出请求时,servlet调用此方法
3、public void init()throws ServletException
用户第一次请求servlet的时候,容器需建立servlet对象,同时调用init()方法
4、service(ServletRequest req,ServletResponse res)
开辟多线程,并根据用户提交的方式,选择调用doGet()还是doPost()方法
此方法不建议重写
第三篇:javaweb课程设计
课程设计:基于Java Web的讨论区BBS系统的设计与实现
本系统要求实现以下主要功能:
(1)登录:提供用户登录系统的功能,需要输入用户名和密码
(2)注册:提供用户注册的功能,需要输入用户名、密码、密码确认、Email、QQ
(3)修改注册信息:提供用户修改注册信息的功能,可以修改密码、Email、QQ
(4)浏览讨论区:用户登录后就可以浏览系统中已存在的讨论区,用户可以查看某讨论
区的详细信息,也可以进入该讨论区浏览已发表的帖子,以及回帖
(5)创建讨论区:用户可以创建讨论区,每个讨论区包含一个名称和顺序号,每个讨论
区的名称在系统中是唯一的,顺序号表示讨论区在列表中的排序
(6)修改讨论区:提供讨论区名称和顺序号的修改功能
(7)删除讨论区:提供讨论区删除的功能,方便管理员进行讨论区管理
(8)浏览帖子:用户进入一个讨论区后,可以看到帖子列表,包含帖子主题、作者、创
建时间、回复次数,点击一个帖子,可以查看该帖子的内容和回帖
(9)创建帖子:用户进入一个讨论区后,可以选择创建一个新帖子,需要输入帖子标题
和内容
(10)修改帖子:提供给管理员使用,修改帖子标题和内容
(11)删除帖子:提供给管理员使用,方便管理员进行帖子整理
(12)回复帖子:用户在浏览帖子信息的时候,可以进行回复
第四篇:javaweb学习心得
学习心得
在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,过滤器,监听器,JSTL,EL,jQuery,Ajax。
下面就各个模块进行总结:在学习html时,我是对这个没太在意的,因为里面全部是标签,没有需要理解的内容,全部是属于识记的,所以在学习时相对轻松,对于html常用的标签都是非常清楚的form中的十一种类型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的标签如div,table,span,select都是重要的标签.Css的学习:虽然说在标签中也可以定义样式,但是这么做看起来不是那么明智,我在学CSS时还是比较努力的,所有的样式效果都测试过,并且写了相应的案例,只是过了不到3个月就忘了一大半,很多时候都是查文档才能写出来的,虽然CSS对于我们来说不必要非常精通,但是我觉得掌握的东西越多,以后的工作就越轻松,所以在中级结束后也会去看看前面的笔记和案例。
Javascript:js 我认为是最重要的,甚至于超过servlet,jsp,在上课期间,讲的内容还是比较少的,就javascript中创建对象来说吧,应该只讲过3中方法,虽然在一般的情况下是用不上的,但是我觉得还是有必要学习的,这样有助于看懂别人写的框架,在javascript这部分学习中讲的最多的还是dom操作,不过我觉得用dom操作太繁琐了,写的代码太多,而且效率看起来也不高,后面就是讲的事件,事件也算是简单的,只是对触发的事件进行相应的响应。除了这些就是javascript流程控制,对象一些基本语法,这些和java类似,所以在上课时没有讲得太多。
Xml: Markup Language可扩展标记语言。它是由SGML(Standard Gerneralized Markup language)发展而来的,允许开发者自定标签,可以将标签和内容有效的分离。在XML技术里,可以编写一个文档来约束XML文档的书写规范,称之为XML约束。本文主要介绍DTD与Schema两种约束,在这里学习了dtd,scheama,定义XML约束,这部分的学习是我感觉最累的一部分,DTD还算好,SCheama里面的内容,现在都忘了,没有任何记忆,只知道在XML约束中有着两中方式,还好这些在刚开始工作时是用不上的,因此我也没有用很多时间来学习。
Servlet:我觉得是比较简单的,可能是因为它是java代码,容易理解。首先讲的是开发环境的配置,安装tomcat,了解tomcat下的目录,以及web工程下的目录。后来是讲了servlet的访问方式,post和get的区别,处理中文乱码是servlet中一个重要的知识点,几乎每个项目都会遇到这个问题。主要乱码有get,post乱码,是通过设置request或者response的编码方式来实现的。Servlet间的跳转方式有重定向和转发,对于重定向和转发的区别,现在理解的很透彻了,重定向是不能获取request中参数,是客户端的两次请求,而转发是服务器内部跳转,不过,两种在设置过滤器的情况下,都要通过过滤器才能跳转。Servlet的生命周期是笔试的必考题,其实这是很简单的,只需要理解,没必要死记硬背的,session算是重要的知识点,很多数据都是存储在内存中,如购物车,用户信息等,还可以对session设置生存时间。说到session就必须说说四种会话跟踪技术,cookie,URL重写,表单域隐藏和session。
JSP:JSP实际上和servlet是一样的,只不过两者侧重点不同,JSP的内置对象和作用域大致是一样的,JSP中还有动作,常用的有操作JavaBean的动作,页面跳转的动作,以及包含的动作。这里重点提到两种包含的区别。在JSP还讲过jstl和EL表达式,都是基础的应用,不过写自定义的标签还是要有一定的java基础的,我开始不太理解标签的解析过程,后来看了几个例子,发现自定义的已不是那么难。
jQuery:jQuery可以说是中级部分学的最好的,主要是它方便了,特别是选择器,而且避免了一些浏览器的差异,所以在学习jQuery后,就再也不想用javascript来获取元素了。不仅如此,jQuery中封装的Ajax操作也是非常简单,不需要自己封装一个类,$.get和$.post 能够省去很多麻烦,jQuery的监听事件也是很简单,不需要在标签中添加对应事件,可以动态的绑定事件。还有就是dom操作更是方便。我在学习完Ajax,json后就发现,即使是没有JSP,也能做出一个动态页面出来,只是会存在效率问题。
总结:虽然说这上面的知识大部分都掌握了,但是能否灵活运用才是重点,所以在今后的学习中多思考问题是否有多种解决方法。
第五篇:Java学习路线
怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:
首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级Java,适合企业的大型应用开发。
J2SE:
新手最初学习的时候先要从J2SE开始学起,所包含的内容主要分为:面向对象概念的理解、Java基本语法的学习,Java桌面图形界面应用程序的开发,掌握常用的Java API等(关键是要学会怎样查阅)。
重点:Java基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等
难点:面向对象思想的理解(接口、类等)、线程、socket网络编程等
视频教程推荐:孙鑫的Java基础视频教程、张孝祥的Java基础视频教程,讲的都很细,而且这两位老师在教学方面都有很好的经验。
J2EE:
在学习了J2SE之后,你可以尝试着慢慢过渡到J2EE,当然,学习J2EE海需要很多非JAVA技术的支撑,比如数据库技术,网页编程技术等等,待会我会详细介绍这两方面的内容。J2EE有三个必学的框架,如果你说你学了J2EE,但又不会这三个框架的话,那会让人笑掉大牙,这三个框架分别是Struts、Spring和Hibernate,虽然这三个框架应用很广,但不代表这三个框架就代表了J2EE,J2EE还有很多其他的东西,比如EJB,作为一款重量级(此重量级不是指重量级选手那个意思,此重量级非彼重量级)框架,虽然这个应用慢慢的再被其他框架所取代,但EJB3.0的出现也给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。
当然,刚才说到J2EE包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。我所了解的还包括:
JDBC:Java数据库连接对象,基础中的基础,Hibernate也只是对它的封装而已 JNDI: Java 命名与目录接口,J2EE重要规范之一 EJBS: 上面已经提到过了
RMI: 提供远程调用方法的支持,主要用于程序分布式开发 JMS: Java消息服务,中间件技术
JAVA IDL: 提供J2EE平台与CORBA交互能力和互联能力的技术 JTS: 组件事务监视器 JTA: 事务划分的一个技术 JAVAMAIL: Java中的邮件技术 JAF: Java启动框架,没研究过 Log4j,一款日志处理的框架应用
Junit:单元测试的好帮手
freemarker、velocity:两款不错的模板引擎
与Flash的交互Flex:目前很多的SNS应用就是使用到了这个技术
Web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术 SOA:面向服务架构,未来技术发展的趋势之一 ……
不过前面介绍到得这些都不是J2EE的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习J2EE最核心的东西:JDBC、JSP、servlet和JavaBean,后面三个也是学习SSH的基础(StrutsSpringHibernate的简称).鉴于J2EE的内容太过复杂,建议大家最初只学习: JSP, servlet和JavaBean,等这个基础掌握好再把SSH学习了,再对其他J2EE技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了把Java学习好,还会有一些其他的技术也是必须要掌握的。数据库技术:
数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有: SQL Server,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.MySQL,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过SQL SERVER数据库再学它,无师自通,易如反掌.ORACLE.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和ORACLE得关系更加暧昧,各位得多花些时间在这上面了.除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。
网页编程基础:
网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的: HTML:超文本标记语言 CSS:层叠样式表
Javascript:浏览器客户端脚本语言
现在更是流行各种JavaScript库,比如:Jquery、ExtJs等,你要是会其中的某一个库的使用,找工作so easy。
J2ME:
如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比PC机多考虑很多成本和实用性问题。J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。
开发工具:
开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择JCreator,或者最好就直接用记事本。等你熟悉了Java代码之后,就可以使用JBuilder、eclispe或者netbeans这一类的工具了。
先说到这里先,以后大家一起完善这个帖子。尽量再给大家整理一些学习的资源在这里。也欢迎大家一起整理我文章中提到的一些技术资源和开发工具。最后,再和大家分享一句话:生命欣欣向荣,唯奋斗不息。也和大家分享一幅Java学习路线图: