发表于: 2017-08-13 23:39:50
1 1146
任务小结:
今天完成的事情:
1.静态资源无法访问终于找到原因了,虽然解决方法是歪门邪道
明天计划的事情:
1. 开始任务5
遇到的问题:
1. 亚衡遇到的一个问题我不知道,认为很有价值
UserName.java
userName.xml
正常的映射是这样的,但是如果写成UserName.xml就无法找到映射文件
收获:
1. 静态资源问题的解决
在linux的tomcat下如果部署文件taskfour.war,
pask设置为task4
则在webapps下生产task4文件夹,war包解压进去
访问url: ip : 端口 /task4/restul风格
可以访问到jsp,但是静态资源的路径为 ip : 端口 / 静态资源地址
需要在加上 ip : 端口 /task4/ 静态资源地址
最新发现
再tomcat下自动加载war包,解压到war名的文件夹下可以访问到css
只是要等一段时间等tomcat部署才可以
初步推测:tomcat先编译jsp文件然后慢慢加载css识别路径什么的,可能编译加载并读取配置信息需要时间。
需要进一步验证。等有时间见了就验证
通过nginx访问也加载不到静态资源,是因为我的nginx配置转发有问题,需要再次研究。
深度思考:
1.什么是jsp?
原来是没有jsp的,只有severlet,后来为了方便开发,将页面显示从severlet中提取出来,通过Java程序段和jsp标记与severlet继续关联(Java Servlet是JSP的技术基础),所以当Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
说人话:为方便java程序员进行开发和实时,对也页面进行修改,看是否正确
2.jsp有几个内置对象?
JSP有9个内置对象
request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。它是HttpServletRequest的实例
response对象:对客户的请求做出动态的响应,向客户端发送数据。
session对象: 是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理
application: 服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
out对象:是一个输出流,用来向客户端输出数据
Page对象:就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例。JSP网页本身,page对象是当前JSP页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:Object page = this;在JSP页面中,很少使用page对象
config:jav jsp validator相关的错误
exception:java.lang.Throwable的实例,该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page的isErrorPage 属性为true时,该对象才可以使用。
pageContext:javax.servlet.jsp.PageContext的实例,网页的属性是在这里管理,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据
3.熟练使用c标签,el表达式。
c标签常用的是<c:if>和<c:forEach>
前一个用于流程控制,后一个运用于循环
<c:forEach items="${studentTable}" var="studentTable" varStatus="st">
<tr>
<td>
${studentTable.id}</td>
<td>
${studentTable.user}</td>
<td>
${studentTable.pass}</td>
<td>
${studentTable.profession}</td>
<td>
${studentTable.profession}-${studentTable.classId}班</td>
<td>
${studentTable.name}</td>
<td>
${studentTable.qq}</td>
<td>
${studentTable.wish}</td>
<td>
<c:if test="${studentTable.status == 1}">
在学
</c:if>
<c:if test="${studentTable.status == 0}">
结业
</c:if>
</td>
<td>
<date:date value ="${studentTable.enrolAt}" /></td>
<td>
修改 删除</td>
</tr>
</c:forEach>
4.为什么要使用tiles框架?
是为了将复杂的jsp页面作为一个的页面的部分机能,然后用来组合成一个最终表示用页面用的,这样的话,便于对页面的各个机能的变更及维护。 Tiles使得struts在页面的处理方面多了一种选择。并且更容易实现代码的重用
说人话:避免重复性劳动,达到修改一个页面,所有的相关页面也修改。也是一种模块复用的思想,高内聚,低耦合。
进度:
任务开始时间:8.6
预计完成时间:8.11
是否有延期风险:已完成
第一次延期 | 延期至 2017.08.12 | 被最后的静态资源访问卡住了,求师兄解答一下!
第二次延期 | 延期至 2017.08.13 | 还是静态资源的问题
禅道:http://task.ptteng.com/zentao/project-task-264-unclosed.html
PS:终于完成了!!!
成果展示:
http://rcy9527.top:14200/a/profession
http://rcy9527.top:14200/a/test
http://rcy9527.top:14200/a/student/all
http://rcy9527.top:14200/a/home
http://rcy9527.top:14200/a/student/table
评论