struts2.3.1实现字符串分割用户名和密码

准备阶段

首先需要导入struts2.3.1的9个架包

commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
freemarker-2.3.16.jar
javassist-3.11.0.GA.jar
ognl-3.0.1.jar
struts2-core-2.2.3.1.jar
xwork-core-2.2.3.1.jar

登录界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>    
    <title>My JSP 'test.jsp' starting page</title>
    <h1>用分号分割用户名和密码</h1>
  </head>
      <body>
           <form action="userAction.action">
                 User Info:<input type="text" name="user"/> <br>
               <input type="submit" value="submit"/>
           </form>
  </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
 xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
  <filter>
      <filter-name>Struts</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>Struts</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
     <struts>
           <package name="struts2" extends="struts-default" >
                        <action name="userAction" class="action.UserAction">
                                 <result name="success">/jsp/output.jsp</result>
                       </action>
        </package>
     </struts>

action包

package action;

import com.opensymphony.xwork2.ActionSupport;
import bean.User;

public class UserAction extends ActionSupport {

    private User user;

 public void setUser(User user) {
  this.user = user;
 }
 public User getUser() {
  return user;
 }
   
    @Override
    public String execute() throws Exception
    {
     // TODO Auto-generated method stub
     System.out.println("UserName:"+user.getUsername());
     System.out.println("Password:"+user.getPassword());
     return SUCCESS;
    }

}

 

converter包

package converter;

import java.util.Map;
import java.util.StringTokenizer;

import bean.User;

import ognl.DefaultTypeConverter;

//类型转换器converter 继承ognl包下DefaultTypeConverter默认的类型转换器
public class UserConverter extends DefaultTypeConverter {

 @Override
  public Object convertValue(Map context, Object value, Class toType) {
  // TODO Auto-generated method stub
  
  //判断页面是否提供数据,有数据则执行if,否则return null。
         if(User.class==toType)  // 从页面向后台对象转换
         {
          //以数组形式接受字符串
          String[] str =(String[])value;
         
          String firstValue = str[0];
         
          //StringTonkenizer类用于获取页面字符串和分隔符
         StringTokenizer st = new StringTokenizer(firstValue,";");
             
         //获取用户名和密码
           String username = st.nextToken();
           String password = st.nextToken();
          
           User user = new User();
             user.setUsername(username);
             user.setPassword(password);
            
            return user;
         }
         else if(String.class==toType) //从后台对象向页面转换
         {
         User user = (User) value;
          String username= user.getUsername();
          String password= user.getPassword();
   
      String userInfo = "username:"+username+",password:"+password;
      return userInfo;
         }
  return null;
 }
}

建立关联UserAction-conversion.properties

    user=converter.UserConverter

bean包

 package bean;

 public class User {
 private String username;
 private String password;
 
 public void setUsername(String username) {
  this.username = username;
 }
 public String getUsername() {
  return username;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public String getPassword() {
  return password;
 }
}

 返回页面output.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 

<!--taglib标签库-->

<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
        <title>My JSP 'output.jsp' starting page</title>

</head>
 
  <body>
         <!--获得 再转到此页面属性之前action对象-->
        <s:property value="user" default="user"/>
  </body>
</html>

 

转载于:https://my.oschina.net/Freelander/blog/38337

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一种方法 使用标准的JAVA接口 1 将用户名密码等用Map泛型封装 再使用StringBuffer 转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据用POST 打开输入和输出流 获取上传信息 字节大小以及长度 设置请求体的类型是文本类型 获得输出流 向服务器输出数据 获得服务器响应的结果和状态码 如果 返回码等于200 得到服务器返回的输入流 将输入流转换成指定编码的字符串并返回 就可以成功提交并得到服务器返回的信息 第二种方法 使用标准Apache接口 02 03 15 19 30 + 06 12 02 03 15 19 30 31 + 06 12 1 将用户名密码等用Map泛型封装 再使用List<NameValuePair> list new ArrayList<NameValuePair> ; 转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据用POST 打开输入和输出流 获取上传信息 字节大小以及长度 设置请求体的类型是文本类型 获得输出流 向服务器输出数据 获得服务器响应的结果和状态码 如果 返回码等于200 得到服务器返回的输入流 将输入流转换成指定编码的字符串并返回 就可以成功提交并得到服务器返回的信息">第一种方法 使用标准的JAVA接口 1 将用户名密码等用Map泛型封装 再使用StringBuffer 转换成一串字符串 然后新建URL打开openConnection 得到 httpURLConnection 设置最长连接时间和setRequestMethod请求方法 用GET还是POST 提交数据用POST [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值