技术标签: exception string struts servlet action login
<!
DOCTYPE
struts
PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
<!-- struts2
的
action
必须放在一个指定的包空间下定义
-->
<
package
name
=
"default"
extends
=
"struts-default"
>
<!--
定义处理请求
URL
为
login.action
的
Action -->
<
action
name
=
"login"
class
=
"org.qiujy.web.struts.action.LoginAction"
>
<!--
定义处理结果字符串和资源之间的映射关系
-->
<
result
name
=
"success"
>
/success.jsp
</
result
>
<
result
name
=
"error"
>
/error.jsp
</
result
>
</
action
>
</
package
>
</
struts
>
|
<!
DOCTYPE
struts
PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
<!-- struts2
的
action
必须放在一个指定的包空间下定义
-->
<
package
name
=
"qiujy"
extends
=
"struts-default"
>
<!--
定义处理请求
URL
为
login.action
的
Action -->
<
action
name
=
"login"
class
=
"org.qiujy.web.struts2.action.LoginAction"
>
<!--
定义处理结果字符串和资源之间的映射关系
-->
<
result
name
=
"success"
>
/success.jsp
</
result
>
<
result
name
=
"error"
>
/error.jsp
</
result
>
</
action
>
</
package
>
<
package
name
=
"my"
extends
=
"struts-default"
namespace
=
"/manage"
>
<!--
定义处理请求
URL
为
login.action
的
Action -->
<
action
name
=
"backLogin"
class
=
"org.qiujy.web.struts2.action.LoginAction"
>
<!--
定义处理结果字符串和资源之间的映射关系
-->
<
result
name
=
"success"
>
/success.jsp
</
result
>
<
result
name
=
"error"
>
/error.jsp
</
result
>
</
action
>
</
package
>
</
struts
>
|
<
struts
>
<
include
file
=
"struts-default.xml"
/>
<
include
file
=
"struts-user.xml"
/>
<
include
file
=
"struts-book.xml"
/>
<
include
file
=
"struts-shoppingCart.xml"
/>
......
</
struts
>
|
<
struts
>
......
<
constant
name
=
"struts.custom.i18n.resources"
value
=
"messages"
/>
</
struts
>
|
package
org.qiujy.web.struts2.action;
import
com.opensymphony.xwork2.ActionSupport;
/**
*
@author
qiujy
*
@version
1.0
*/
public
class
LoginAction
extends
ActionSupport
{
private
String
userName
;
private
String
password
;
private
String
msg
;
//
结果信息属性
/**
*
@return
the
msg
*/
public
String getMsg() {
return
msg
;
}
/**
*
@param
msg
the
msg
to
set
*/
public
void
setMsg(String msg) {
this
.
msg
= msg;
}
/**
*
@return
the
userName
*/
public
String getUserName() {
return
userName
;
}
/**
*
@param
userName
the
userName
to
set
*/
public
void
setUserName(String userName) {
this
.
userName
= userName;
}
/**
*
@return
the
password
*/
public
String getPassword() {
return
password
;
}
/**
*
@param
password
the
password
to
set
*/
public
void
setPassword(String password) {
this
.
password
= password;
}
/**
*
处理用户请求的
excute()
方法
*
@return
结果导航字符串
*
@throws
Exception
*/
public
String execute()
throws
Exception{
if
(
"test"
.equals(
this
.
userName
) &&
"test"
.equals(
this
.
password
)){
msg
=
"
登录成功,欢迎
"
+
this
.
userName
;
return
this
.
SUCCESS
;
}
else
{
msg
=
"
登录失败,用户名或密码错
"
;
return
this
.
ERROR
;
}
}
}
|
public
String execute()
throws
Exception{
if
(
"test"
.equals(
this
.
userName
) &&
"test"
.equals(
this
.
password
)){
msg
=
"
登录成功,欢迎
"
+
this
.
userName
;
//
获取
ActionContext
实例,通过它来访问
Servlet API
ActionContext context = ActionContext.getContext();
//
看
session
中是否已经存放了用户名,如果存放了:说明已经登录了;
//
否则说明是第一次登录成功
if
(
null
!= context.getSession().get(
"uName"
)){
msg
=
this
.
userName
+
"
:你已经登录过了
!!!"
;
}
else
{
context.getSession().put(
"uName"
,
this
.
userName
);
}
return
this
.
SUCCESS
;
}
else
{
msg
=
"
登录失败,用户名或密码错
"
;
return
this
.
ERROR
;
}
}
|
<form method="post"
action="userOpt!login.action">
|
package
org.qiujy.web.struts2.action;
import
com.opensymphony.xwork2.ActionContext;
import
com.opensymphony.xwork2.ActionSupport;
/**
*
@author
qiujy
*
@version
1.0
*/
public
class
LoginAction
extends
ActionSupport{
private
String
userName
;
private
String
password
;
private
String
msg
;
//
结果信息属性
/**
*
@return
the
msg
*/
public
String getMsg() {
return
msg
;
}
/**
*
@param
msg
the
msg
to
set
*/
public
void
setMsg(String msg) {
this
.
msg
= msg;
}
/**
*
@return
the
userName
*/
public
String getUserName() {
return
userName
;
}
/**
*
@param
userName
the
userName
to
set
*/
public
void
setUserName(String userName) {
this
.
userName
= userName;
}
/**
*
@return
the
password
*/
public
String getPassword() {
return
password
;
}
/**
*
@param
password
the
password
to
set
*/
public
void
setPassword(String password) {
this
.
password
= password;
}
/**
*
处理用户请求的
login()
方法
*
@return
结果导航字符串
*
@throws
Exception
*/
public
String login()
throws
Exception{
if
(
"test"
.equals(
this
.
userName
) &&
"test"
.equals(
this
.
password
)){
msg
=
"
登录成功,欢迎
"
+
this
.
userName
;
//
获取
ActionContext
实例,通过它来访问
Servlet API
ActionContext context = ActionContext.getContext();
//
看
session
中是否已经存放了用户名,如果存放了:说明已经登录了;
//
否则说明是第一次登录成功
if
(
null
!= context.getSession().get(
"uName"
)){
msg
=
this
.
userName
+
"
:你已经登录过了
!!!"
;
}
else
{
context.getSession().put(
"uName"
,
this
.
userName
);
}
return
this
.
SUCCESS
;
}
else
{
msg
=
"
登录失败,用户名或密码错
"
;
return
this
.
ERROR
;
}
}
public
String regist()
throws
Exception{
//
将用户名,密码添加到数据库中
//...
msg
=
"
注册成功。
"
;
return
this
.
SUCCESS
;
}
}
|
<!
DOCTYPE
struts
PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<
struts
>
<
package
name
=
"my"
extends
=
"struts-default"
namespace
=
"/manage"
>
<!--
定义处理请求
URL
为
login.action
的
Action -->
<
action
name
=
"userOpt"
class
=
"org.qiujy.web.struts2.action.LoginAction"
>
<!--
定义处理结果字符串和资源之间的映射关系
-->
<
result
name
=
"success"
>
/success.jsp
</
result
>
<
result
name
=
"error"
>
/error.jsp
</
result
>
</
action
>
</
package
>
</
struts
>
|
<%@
page
language
=
"java"
pageEncoding
=
"UTF-8"
%>
<
html
>
<
head
>
<
title
>
用户登录页面
</
title
>
</
head
>
<
body
>
<
h2
>
用户入口
</
h2
>
<
hr
>
<
form
action
=
"manage/userOpt!login.action"
method
=
"post"
>
<
table
border
=
"1"
>
<
tr
>
<
td
>
用户名:
</
td
>
<
td
><
input
type
=
"text"
name
=
"userName"
/></
td
>
</
tr
>
<
tr
>
<
td
>
密码:
</
td
>
<
td
><
input
type
=
"password"
name
=
"password"
/></
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
>
<
input
type
=
"submit"
value
=
"
确定
"
/>
</
td
>
</
tr
>
</
table
>
</
form
>
</
body
>
</
html
>
|
react生命周期:生命周期函数是自动执行的,具体某个生命周期想干什么,需要我们自己去写react组件的生命周期过程常用生命周期:1.constructor(构造函数)2.getDerive的StateFromPropsstatic getDerivedStateFromProps(props, state)getDerive的StateFromProp会在render方法前调用,并且在初始挂在及后续更新时都会被调用,它应返回一个对象来更新state,如果返回nul..
这篇文章主要为大家详细介绍了python实现3D地图可视化,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下基于python代码的3D地图可视化,供大家参考,具体内容如下介绍使用Python对地图进行3D可视化。以地图为地图,可以在三维空间对轨迹、点进行可视化。库我们使用了多个库:1.gdal;主要是用于读取地图信息,这个库在GIS中很常用,使用C++代码...
题目输入:一个三位数输出:逆序输出这个三位数,输出个位、十位、百位,三个数字,用空格分开解答#include<stdio.h>int main(){ int num, ge,shi,bai; printf("Please enter a 3-digit number:"); scanf("%d",&num); ge = num%10; shi = num/10%10; bai =
THSTrader量化交易。同花顺免费模拟炒股软件客户端的python API。(Python3)为什么有这个项目本来看到了这个easytrader这个项目,不过这个客户端已经过时了(被强制更新)。于是乎,自己看了一遍easytrader的源码,写了一个自己的版本。看了 https://github.com/nladuo/THSTrader,觉得美中不足,所以自己从中优化了一个版本,更具有通用性,...
上一次博客写到Spring有两种依赖注入的方式,设值注入和构造注入,详情点击这里:http://blog.csdn.net/kevin_zhai/article/details/52184901。上述两种注入方式的例子,都是通过XML配置文件来装配Bean的。除此之外,Spring提供了一种更加方便的装配Bean的方法,即利用@Autowired注解进行自动装配。一、@Autowired基本使
现场同事反馈:中间件weblogic连不上数据库Oracle,发回日志可以看到: Caused by: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: Io 异常: B
准备工作:使用 virtualBox 安装了2台 centos7 环境的虚拟机。安装步骤完全参考:https://www.jianshu.com/p/18207167b1e7 步骤1安装完成,登录centos7 完全退出虚拟机。重新设置 -> 网络,配置NAT(网卡1)+ Host-Only(网卡2)两种网络模式。NAT网卡保证虚拟机能联网,Host-Only保证虚拟机能和主机联通。(注意:设置网卡2 Host-Only需要在虚拟机完全安装完成后再设置,而不能在安装centos7过程中设置。这
JUC同步工具类中的一个比较高级的类。本文首先介绍了其特性,然后简单和其他工具类比较。并分析了主要方法的源码。随后用Phaser来实现 CountDownLatch和CyclicBarrier的功能。希望能帮助大家更好的理解Phaser.
Openssl源码安装及升级查看openssl当前版本:源码安装openssl-1.1.0升级openssl-1.1.1查看openssl当前版本:[[email protected] ~]# rpm -qa | grep opensslopenssl-libs-1.0.2k-16.el7.x86_64openssl-1.0.2k-16.el7.x86_64openssl-devel-1.0.2k...
阅读目录1.购物车UI编写1.1 购物车布局1.2 recycleView中的item的布局2. 购物车数据结构分析、解析与转化2.1 解析的数据2.2 数据的转化2.3 数据适配器的添加3. 购物车逻辑梳理与实现3.1 是否选中的事件的响应3.2 全选按钮事件的响应3.3 闪屏bug3.4 删除按钮的功能实现3.5 清空购物车3.6 清空购物车之后的额外内容的显示3.7 左右加号减号的功能的实现3.8 结算功能的实现4.订单和支付逻辑梳理和处理4....
先来两个数字举例子:a,b =input('输入a,b空格隔开:').split()#此时a,b为str型a,b =map(int,input('输入a,b空格隔开:').split())#此时a,b为int型输入多个数字写法:nums = list(map(int, input().split()))list1 = [] #定义一个空列表str1 = input("请输入数值,用空格隔开:")l...
用esayExcel做的导出在本地跑无问题,到服务器上就找不到文件。这个问题可以用下面这行代码解决 InputStream templateFileName = this.getClass().getClassLoader().getResourceAsStream("excel/" + templateName + ".xlsx"); //获取文件 URL url = this.getClass().getClassLoader().getResource("excel/" + templateNam