Javaweb笔记 - 草稿

1.tomcat配置管理员角色

在conf/tomcat-users.xml下

2.form中action属性后面传递参数获取不到原因:

浏览器会将表单数据封装为字符串,如controller=message&method=search,然后直接附在表单的 action URL 之后。这两者之间用问号(?)进行分隔。如果GET请求的表单action属性中已经包含参数,浏览器会直接将其过滤掉,再附加form表单数据。

因此,GET请求方式的表单的action属性中不能附带任何参数,如果需要附加额外的参数,可以采用如下方式:

a、采用POST请求方式,在form中增加属性method="post"即可。

b、如果仍然想使用GET请求方式,可以在form表单中添加相应的隐藏文本域,

3.sendRedirect方法中的路径以"/"开头,则代表站点的根路径,localhost:8080,而对于forward来说,路径以"/"开头,代表web应用的根目录。

request.getRequestDispatcher(url)之所以可以使用相对路劲,是因为在getRequestDispatcher(url)方法中封装了ServletContext.getRealPath()以获得相应的项目根路径,再通过字符串相加,从而可以获得一个完整的路径

sendRedirect有两种方法,可以用相对路径(直接用),也可以用相对路径(需加应用路径)

` ` `

resp.sendRedirect("/session/login.jsp");

resp.sendRedirect(req.getContextPath() +"/session/login.jsp");

```

4.转发有三种方式

requestDispatcher.foward,pageContext.foward,jsp:fward

5.会话Cookie和持久cookie的区别

a:如果不设置过期时间,cookie为会话,会话cookie不保存在硬盘而是保存在内存

b:如果设置了过期时间,浏览器会把cookie保存在硬盘

c:存储在硬盘的cookie可以在浏览器共享

Session


第一次访问,响应中回有Set-Cookie字段


如何防止表单的重复提交

表单的重复提交情况

a:表单提交到一个Servlet,Servlet转发到JSP页面,地址栏还保留这servlet的路径,这时候刷新页面

b:在响应页面没有到达时,重复点击提交

c:点击返回,再点提交

不算重复提交情况:

返回,刷新原来的页面,提交

避免表单的重复提交:把标记放到session中

a:在原表单页面生成一个随机token

b:在原表单页面,把token放到session中

c:在原表单页面,把token值放到隐藏域中

d:在目标servlet中,获取session和隐藏域中的值

e:比较两个值是否一致,一致,把session中的值清除

f:不一致,响应重复提交

你可能感兴趣的:(Javaweb笔记 - 草稿)