java web开发相关概念以及环境搭建html
HTTP协议 Http:Hyper Text Transfer Protocol 超文本传输协议java
http协议规定了客户端软件和网络服务器的通讯规则。数据有html文档,音乐,图片等文件。linux
http协议定义了8中方法,执行不一样的操做。 get,post,options,head,put,delete,trace,connect 哦破训 吹思 砍ne课特 选择 发现 链接web
最经常使用的是get和post数据库
web开发内容apache
重点作服务端的开发:包含如下内容小程序
第一:给用户提供网页的UI,而且用户在进行不一样操做时,能够经过程序动态的给用户提供不一样页面或数据(动态性) 第二:有了程序后须要把它部署在服务器上能够供给全部用户使用,经常使用的web服务器有tomcatwindows
使用myeclipse+tomcat搭建java web项目 目前使用 apache-tomcat-6.0.16 免安装版 解压到d盘目录 startup.bat 是windows启动执行文件 运行tomcat6.0.16 startup.sh 是linux 系统启动执行文件浏览器
打开myeclipse windows > preferences > myeclipse > servers>tomcat> tomcat 6.x >browse 选中刚刚解压的apache-tomcat-6.0.16目录 会自动导入3个包而后启动tomcat > starttomcat
配置成功后咱们建立第一个web project小程序 发音(扑ra接可特)词意(工程)
xml是咱们如今接触的第一个配置文档
<welcome-file-list>标签能够配置初始页面 把建立的第一个web project部署到tomcat6.0里面
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
改为utf-8反正乱码
servlet技术 发音(舌V累特)词意(小服务器程序)
javax包必定是web开发相关
HttpServletRequest Request 发音(瑞kua死特)词意(请求) HttpServletResponse Response 发音(瑞死棒死)词意(响应)
response.setCharacterEncoding 设置汉字乱码方法 发音(克瑞K特 因扣顶)词意(字符编码)
servlet有生命周期 init方法里面写数据库的初始化 由于链接数据库只须要链接一次 这个方法恰好只执行一次 启动》加载》init()方法调用进行初始化,只执行一次》等待用户请求 get(doget) 超级连接 post(dopost)表单提交 》销毁,调用destroy方法 低思脚以 给你清空资源
destroy 发音(弟死quai) 词意(销毁)
servlet 的生命周期能够改变
<servlet></servlet>能够有多个,mapping必定要配置
<welcome-file-list> 配置初始化页面
编写servlet的重点在请求处理阶段。是整个编码的核心。
第一个doget方法 包含两个参数:httpservletrequest和httpservletreponse
httpservletrequest :http请求对象。是服务器在接收用户请求后给咱们封装的对象,全部与请求相关的数据(例如地址,参数,数据,文件。客户端ip等)都被包含在这个对象内。
httpservletreponse:http响应对象。经过这个对象给用户响应内容。好比网页或cookie
response对象能够获得一个输出流对象
response.setcontenttype("text/html;charset=gb2312");解决网页乱码
深刻了解servlet技术
servlet如何获取用户提交的表单数据
request.getParameter();方法 发音(pa rua 们 特)词意:参数
<form>表单内的属性 action 发音(a 可信) 词意(开始)传入一个绝对路径 method 发音(ma 舍的)词意(方法) 属性改变表单提交的方式方法 method="get" 或者"post"
数据库乱码使用:request.setCharacterEncoding("UTF-8"); 网页乱码:response.setContentType("text/html;charset=gb2312");
request.getContextPath()这个方法能够获得当前项目的路径
servlet中读取自身初始化参数 servlet必须配置在web.xml中才能够使用,除了配置常规外,咱们还能够有一些可选的配置供咱们使用。
servlet初始化的配置,加载的配置 能够控制用户第一次访问servlet的时间
须要xml文件内使用标签<load-on-startup>0</load-on-startup> 假如这个标签没有配置或者是负数,那么servlet会在第一次访问时建立而且初始化。若是这个值配置成>=0的时候 就会不须要访问就会调用init方法,会在web服务器启动的时候建立并初始化。对于有多个servlet的时候,这个值越大,启动的优先级就越底。
servlet读取上下文参数 有时候咱们但愿配置一个参数,能够在全部的servlet内能够读取怎么办呢?
使用标签<context-param>发音(康特可死特)词意(上下文) </context-param> 这个标签就不是配置在<servlet>标签内而是在外面 这是全局变量
配置好了全局变量后,咱们经过getServletContext()方法获得 经过ServletContext 这个类实例化一个对象来接收返回的参数。 而后经过实例化的对象点出this.getInitParameter("name")方法来获得值
在xml配置文件中配置参数对软件的扩展性是有帮助的,假如目前有变量须要在不少的地方使用。因此只须要在xml配置一个全局变量,全部的servlet均可以使用到。
咱们能够通 sendRedirect方法跳转到指定的html页面 可是必须在你没有向 response 输出任何东西以前,看下面的例子
response.setCharacterEncoding("utf-8"); String uname=request.getParameter("username"); String password=request.getParameter("pwd"); String path=request.getContextPath(); if(uname.endsWith("admin")&&password.endsWith("admin")){ response.setContentType("text/html"); request.getRequestDispatcher(path+"/loginafresh.html").forward(request, response); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); out.println(uname+"登陆成功,欢迎来到java世界"); out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); }else{ response.sendRedirect("/tomcatone/loginafresh.html"); }
session 会话 只要有链接的都是会话 浏览器和服务器之间的会话 会话能够保留很长的时间 session 和 cookie 之间是有某种联系的
session是服务器端 sessionid 是惟一的没有重复 cookie 是浏览器端
session有一个过时时间 登陆后长时间不操做会失效 服务器的内存 长时间占据会消耗服务器资源 因此当用户长时间不操做后 咱们就把这个资源释放
response.setCharacterEncoding("utf-8"); 或者gb2312 request.setCharacterEncoding("utf-8"); 设置编码
pojp包里面放不少的类 就是为了传值的 db 包里面放 service 包放servlet的类 设围斯 服务