师父所谓的“考试”,原来就是组长关心一下我一周的学习情况,吓死我了。组长建议我看一下mvc,spring(手册reference)。问题:师父讲了IOC,AOP,让我照着自己写一个,但是不知道eclipse怎么运行项目了。一点都不会,看的web感觉都没看了,好像重新再看一遍,边看边操作。基础的都没弄懂,不想跟着做项目。还是喜欢一步一步的学,一下子去接受新的东西,对我来说好困难
。
一、JSP指令
1、page指令
- <page errorPage="..."> <error-page>(在web.xml中设置)
- isErrorPage="true"
- contentType
- pageEncoding
- isELIgnored
2、使用page解决乱码问题(tomcat6就没有乱码了)
- <%page pageEncoding=gb2312 contentType="text/html; charset=gb2312"%>(用eclipse开发就没有这个问题。记事本默认保存的是gb2312,服务器是iso8...)
- pageEncoding=UTF-8(如果是eclipse,这么写就可以了。如果是记事本就不行)
3、include指令
- <@include file="/地址"> 包含指令,静态包含(编译时包含) 把<html><body>删掉,不然就重复了(会把3个jsp(包含时涉及到的jsp)编译成1个servlet,开发中一般用静态包含,因为性能这些比动态好)
- 动态包含(运行时包含):<%request.getRequestDispatcher("/地址").include %>(会把3个jsp编译成3个servlet)
二、jsp九大隐式对象
1、jsp九个隐式对象
- Request
- Response
- Session
- Application
- Config
- Page
- Out
- Exception
- pageContext
2、out隐式对象
- <out.write("haha"); response.getWriter().write("wowo");>(先出来的是wowo。haha是在JspWriter对象的缓冲区;wowo在response的缓冲区,哈哈是之后再跟在后面的;out有缓冲)
3、pageContext对象(域对象,jsp中最重要的对象)
- pageContext.getRequest()(用在定义标签开发技术里面)
- jsp页面是不允许出现一行java代码的,这时候就要用自定义标签
- <% String data = request.getAttribute("data"); out.write(data); %>将这个代码移到<flx:viewData/>
- pageContext封装其他8大隐式
- pageContext.serAttribute("data", "aaaa");
- 是四个域里面最小的域,称为page域(页面范围内);request域大一点(在请求范围内拿得出来);session域大一点;application
- pageContext.findAttribute("data");(在page域找有没有data...request...session...application,如果都没找着,返回空)省事。重点
- el表达式:$(data) //pageContext.findAttribute("data");
- 引入和跳转到其他资源:<% pageContext.forward("/1.jsp"); pageContext.include("/foot.jsp"); %>(好多方式了,还有:include指令,request,)
三、JSP标签
1、3个标签
- include标签
- forward标签
- param标签
2、标签用法
- <jsp:forwar page="/index.jsp"></jsp:forward> 应用场景:为网站配置首页,
- <jsp:include page="/index.jsp"></jsp:include> <%-- pageContext.include() 动态包含。开发中一般用静态包含 --%>
- param好想是写在include里面的
四、映射JSP和常见错误
1、映射
- <jsp-flie>...
2、错误
- jsp有问题,结果报servlet有错
- ......
五、div和css
1、盒子模型
- div盒子
- 控制div的边框:Border-top, Border-bottom, Border-left, Border-right
- div里面套了数据,控制数据在盒子里面的位置:Padding-top, Padding-bottom, Padding-left, Padding-right
- 控制盒子离上下左右的距离:Margin-top, Margin-...
2、div的定位技术
- 让其在一行上:float:left(浮动完了要clear,不然会让后面的也跟着浮动),
- 定位技术position:relative; left:60%相对定位(div没有脱离文档流,意思就是眼睛看着它走了,但是它还占着那个坑)
- 绝对定位:position:absolute; right:0x;(相对于浏览器边框流向树,脱离了文本流)(绝对定位看它的爸爸有没有设置相对定位,如果所有爸爸都没有相对,就相对于浏览器边框。如果哪个爸爸有相对,就相对于那个爸爸。应用:照片签名)
- display:none(不显示)
- cursor:hand(鼠标变成手)
- 去掉浏览器默认的距离:body{margin:0px;}
- padding:0px;
- overflow:hidden;(去掉页面滚动条)
- 网页居中:text-align:center; (网页宽度建议960-1002,不要大于1024-1440)
3、登录案例(Dreamweaver)
- 小工具(ie取色:HTMLcolor)016aa9;
- overflow:hidden;
- 引用图片:background-image:url(images/login.gif);
4、登录之后的页面
- 分帧:<fieldset>
- .......
六、Maven
1、maven的生命周期 http://juvenshun.iteye.com/blog/213959
七、web入门
1、写一个网络程序让浏览器访问1.html
- 1.html --> 网络程序(如果装了服务器,就不用自己写网络程序了) --> ie
- Server.java
import java.net.*; import java.io.*; public class Server { public static void main(String[] args) throws Exception { //为什么抛IOException就不行呀? ServerSocket server = new ServerSocket(9999); Socket sock = server.accept(); FileInputStream in = new FileInputStream("D:\\web\\fanglixun11day\\day04\\1.html"); //这里要用\\两条线,转义符 OutputStream out = sock.getOutputStream(); int len = 0; byte buffer[] = new byte[1024]; while((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); } in.close(); out.close(); sock.close(); server.close(); } }
- 把服务器开起:
- 在浏览器中输入:localhost:9999,显示如下:
- 问题:为什么运行java Server第一次的时候,能够看到aaaaa,第二次运行了再刷新就无法显示了呀?
2、web服务器
- Tomcat:支持全部jsp以及servlet规范
- 端口:http:80;web一般是80,只是开发的时候运行在8080上;
- smtp:25;
- pop3:110;
- ftp:23;
- https:443
3、web服务器启动问题:
- tomcat是用java写的程序,所以会启动java虚拟机,所以要配java_home
- 查看端口的工具:Fport.exe,为什么我用了?
- D:\apache-tomcat-7.0.54\conf\server.xml可以把8080改成80,在浏览器中就可以直接localhost访问了
- URL:http://www.sina.com/(如果不指定,默认端口:80)
- 主机名:www.sina.com
- 域名:sina.com(域下面可以搭建多台主机的,买的话是域名)
- Catalina_home环境变量的设置问题:点startup.bat就启动catalina_home路径的服务器
4、Tomcat服务器目录结构
- D:\apache-tomcat-7.0.54\logs日志文件(tomcat的运行信息)
- webapps:web应用所在目录,即供外界访问的web资源的存放目录
- work:Tomcat的工作目录