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+"");