jsp学习笔记

1.多在网上收集一些脚本,慢慢的就变成自己的了。

2.语言没有垃圾不垃圾,只有不同时代的不同产物。

3.程序员———项目组长———项目经理——系统架构师———技术总监

4.在connector里面修改服务器的端口号(post)

5.在</host>上面配置虚拟路径:<Context path="/dome"docBase="E:\webDemo"/>前面的表示地址栏里面的路径,后面的表示硬盘上的路径;同时在conf/web.xml里面修改可以打开列表表中的目录显示:配置如下:

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

6.在myeclipse里面可以像上面一样手动配置部署,也可以配置好服务以后自动部署

7.在<%!%>中不能编写任何语句,只能是全局变量和常量的声明,同时也可以定义方法,但是不是很常用。

8.页面属性<@page contentType=”text/html charset=gb2312”>的text/html地方是设置的页面编码类型,他是在conf目录下web.xml里面的MIME属性的

这就是相应的页面属性,可以设置为任意的相应属性如果是doc的页面属性,如下

<mime-mapping>

<extension>doc</extension>

<mime-type>application/msword</mime-type>

</mime-mapping>

就会是页面以word文档形式打开:

9.<%@pageinclude=”被包含的页面的名字%>这种是静态的包含,文件的类型无所谓都可以包含进来文件的内容;
<jsp:include page=”页面”/>与上面的效果一样,因为包含进来的都是静态页面,没有动态页面

语法一:

<jsp:include page=”页面”>

语法二:

<jsp:include page=”页面”>

<jsp:param name=”参数名称” value=”值”/>

</jsp:include>

动态包含和静态包含的区别是动态把各个页面分别处理,然后把内容在包含进来,并且可以向被包含页面传递参数;

10.包含功能使用方式一样:

语法一:

<jsp:forward page=”页面”>

语法二:

<jsp: forward page=”页面”>

<jsp:param name=”参数名称” value=”值”/>

</jsp: forward >

11.pageContext.setAttribute(“name”,”wcl”)

pageContext.getAttribute(“name”)只是页面的一个参数保存

request.setAttribute(“name”,”wcl”)

request.getAttribute(“name”)可以把一次请求信息传递,但必须是服务器端跳转<jsp:forward=”*.jsp”/>

session.setAttribute(“name”,”wcl”)

session.setAttribute(“name”)可以保存一个用户的信息,可以验证用户是否登录

application.setAttribute(“name”,”wcl”)

application.getAttribute(“name”)只要设置一次,则所有的窗口都可以取得多个数据

如果能使用request就不适用session,如果能使用session就不要使用application

12.在链接跳转的时候传一个参数过去,在接受页面可以直接接受参数,并且使用<a href=”*.jsp?name=wcl”>à<a href=”*.jsp?name=wcl&password=xyn”>

13. <input type="checkbox" name="inst"value="篮球">篮球

<input type="checkbox" name="inst"value="游泳">游泳

接收页面: String inst[] = request.getParameterValues("inst") ;数组接收

14.在接受参数不确定的情况下,可以用getParameterNames,等到有需求具体查看相关文档,还可以通过request.getRemoteAddr()获得ip地址

15.页面刷新:response.setHeader(“refresh”,”1”);

两秒钟页面跳转到其他页面:response.setHeader(“refresh”,”2;URL=*.jsp”);

单纯的跳转不设置头信息:response.sendRedirect(“*.jsp?id=xyn”)

传递参数的跳转:response.sendRedirect(“*.jsp”)

response.sendRedirect(*.jsp)和<jsp:forward page=”页面”>的区别

16.

客户端:

Cookie c = new Cookie();

c.setMaxAge(60);

response.addCookie(c);

服务器端:

Cookie c[] = request.getCookies();

Cookie temp = c[i];

temp.getName()->temp.getValue();.

17.session.setAttribute(“flag”,”ok)

session.getAttribute(“flag”)!=null做出判断

session.invalidate();注销session

long l =session.getCreationTime();new Date(l);通过date类获得完整时间

long l =session.getLastAccessedTime();new Date(l);通过Date类获得最后操作时间

18.application.getRealPath();获得工作目录的真实路径,他可以把application写成getServletContext().getRealPath()

19.pstmt = dbc.getConnection().prepareStatement(sql);

记住在取得连接的时候,一定要把连接赋值到pstmt对象里面,不然总会报错无法获得相应的get方法的值

20. Stringsql = "SELECT id,title,author,content FROM NOTE WHERE title like ? orauthor like ? or content like ?";

在模糊查找中中间不是用and连接,是用or连接

20.在程序中写的try/catch尽量的抛异常的范围小一点,不然不能精确到每个异常的跑出,并且可能因为各自的互相影响导致结果的不正常.

21.在配置servlet路径的时候,总是会出现找不到路径的情况,那么我们就要在servlet-mapping里面的url-pattern里面的地址就加上一个/这样就能和所放置的jsp文件的路径是一样子了,然后再提交表单的时候,把相应的项目的名字+url-pattern里面的内容一起写上,这样以后就不会出现找不到文件的错误了。

22.在dao模式里面,工厂类里面定义的new出新对象的方法一定要是静态的,不然没有办法调用

23.在dao+servlet+jsp实现留言板的时候,在登陆验证的时候,总是显示用户名和密码错误,分布打印以后,发现在PersonDAOImpl.JSP类里面的判断用户是否登陆的boolean的方法总是传出来false值,打印传入语句,发现为null值,原因是调用这个方法的时候,一定要传入相应的参数,开始时无参的方法,后来发现,调用这个方法,应该是传入一个person的对象才对,于是,更改方法为传入的person对象,验证成功

24.在servlet中无论是保存session还是保存cookie等保存信息的情况都要在跳转信息之前,这样才能把信息保存到相应的设置里面

25.在上下文中如果有两个以上的跳转,一定要在内层跳转向外层跳转时候加上衔接,就是在内层里面加上return或者break语句,这样无论内层语句执行与否都不会引起内外两层跳转语句的冲突

26.在用bufferedwriter往文件里面写东西的时候,直接写入int类型的数就会报错,然而给他写成+””这样就不会报错了 bw.write(times+"");

你可能感兴趣的:(学习笔记)