- 浏览: 18482 次
最新评论
文章列表
1 什么是URL编码?URL编码有何作用?如何进行URL编码及反编码?
URL编码是一个专门对地址栏里所传递的参数进行编码的规则。
比如在参数中带有空格的话,传递参数时就会发生错误,而用URL编码过以后,空格变成了%20这样就不会发生错误了;
另外中文字经编码后全是怪符号,有利于保密。
这个编码后的字串提交给服务器后是不需要解码的,网页会自动识别.
URL编码遵循下列规则:
每对name/value由&符分开;每对来自表单的name/value由=符分开。
如果用户没有输入值给这个name,那么这个name还是出现,只是无值。
任何特殊的字符(就是那 ...
<html:link> 生成的是一个超链接:
<a href="/StrutsMyself/RegUserUI.do?username%A0%">注册</a>
<html:rewrite>生成的是一个地址:
"/StrutsMyself/RegUserUI.do?username%A0%"
<htmk:link>的使用
- 博客分类:
- Struts
<html:link action="/RegUserUI">注册(很好)</html:link><br>
<%
request.setAttribute("name", "kakashi");
%>
<html:link action="/RegUserUI" paramId="username" paramName="name">注册(url编码)</html:link><br>-- ...
防止表单重复提交的原理与struts的实现
- 博客分类:
- Struts
第一个action:
public class RegUserUI extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
saveToken(request);//生成Token
// return new ActionForward("/WEB-INF/user/reUse ...
<html:checkbox property="autoLogon"></html:checkbox>两星期自动登录
Form:
boolean autoLogon;
public boolean isAutoLogon() {
return autoLogon;
}
public void setAutoLogon(boolean autoLogon) {
this.autoLogon = autoLogon;
}
@Override
public void reset(ActionMapping mapping, Htt ...
errors参数国际化
- 博客分类:
- Struts
prompt.name=(en)username
error.username.wrong={0} is wrong
public class RegUser extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserForm userForm = (UserForm)form;
...
表单校验:请求参数->ActionForm->ActionForm.validate->表单校验错误返回errors->reguser.jsp->显示错误信息。
业务逻辑校验:请求参数->ActionForm->ActionForm.validate->表单校验成功则调用Action.execute方法->逻辑校验错误->产生errors->返回reguser.jsp显示错误信息。
public class RegUser extends Action {
@Override
public ActionForward e ...
public class UserForm extends ActionForm {
private static final long serialVersionUID = 1L;
private User user = new User();
private String password2;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
// ALT + SHIFT + S + R
public String getP ...
html_errors标签引入国际化资源包
- 博客分类:
- Struts
public class UserForm extends ActionForm {
@Override
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
String name1 = user.getUsername();
if(name1 != null)
name1 = name1.trim();
if("".equals(name1))
errors.add("us ...
FormBean使用值对象类型的属性
- 博客分类:
- Struts
public class UserForm extends ActionForm {
private User user = new User(); public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
public class User {
private String username;
private String password;
public String getUsername() {
return username;
...
1 .<logic:forward>属于程序内部访问,一次请求
http://localhost:9999/strutsdemo
2 .<logic:redirect>重定向,发生两次请求
http://localhost:9999/strutsdemo/RegUserUI.htm
<global-forwards>
<forward name="reguserui" path="/RegUserUI.htm"></forward>
</global-forwards>
1. ...
public class OtherActionForm extends ActionForm {
private static final long serialVersionUID = 1L;
private String userId;
private String passWord;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassWord() {
...
当你想访问http://localhost:9999/strutsdemo/时(不含任何.do),需要在index.jsp中定义一个<logic:forward name="ABC">
例如:
index.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/struts-logic" prefix="logic&quo ...
当客户端向服务器发送一请求时,服务器不知道客户端是否支持cookie,会直接把cookie信息发送到客户端(第一次开启服务器时,查看<htmk:link>的源文件),<htmk:link>的action后面会跟随一个sessionId,客户端得到sessionId后会存入到cookie中,当客户端再次向服务器发送请求时,会把这个sessionId也传过去,这时服务器发现有sessionId,说明不需要在响应客户端的同时再次发送sessionId(除了第一次开启服务器,其他任何时间查看<htmk:link>的源文件)
public class LoginOtherAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest requert,HttpServletResponse response){
UserForm actionForm = (UserForm)form;
String userId = actionForm.getUserId();
String passWord = actionForm.getPassWord(); ...