本例框架很简单:默认页面为用户登录界面login.jsp,提交后由action类LoginAction.java来判断成功或失败,登录结果分别由success.jsp和failure.jsp呈现. 一. 相关文件目录 1.web.xml的目录:StrutsTest\WebContent\WEB-INF\web.xml. 2.struts.xml的目录:StrutsTest\WebContent\WEB-INF\classes\struts.xml. 3.LoginAction的目录:Struts…
struts2的配置过程 (1)在项目中加入jar包 (2)web.xml中filter(过滤器)的配置 <?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-…
Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor中有下面这段代码,将参数写入写入到request的parameters中,再通过OGNL注入到Action中去.所以按照struts2约定,上传文件名以及上传文件类型和上传文件本身,都是以页面input的name来决定的. String[] fileName = multiWrapper.getFi…
一.属性封装 1.创建User实体类` package cn.entity; public class User { private String username; private String password; @Override public String toString() { return "User{" + "username='" + username + '\'' + ", password='" + password + '…
我用的strust2框架,开始的时候这么写的: 在 登陆函数中(注释部分): public String dealerLogin(){        EntityInfo entityinfo=dealerservice.dealerLogin(super.account,super.password);           if(entityinfo!=null){/*             ActionContext ac = ActionContext.getContext();我开始用…
举个例子 jsp页面: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+…
一.属性封装 1.在action中设置成员变量,变量名与表单中的name属性值相同 2.生成变量的set方法 实例 获取用户输入的用户名和密码 jsp页面 java代码 二.模型驱动(常用) 1.action实现 ModeDriven 接口 2.在action里创建实体类对象 3.实现接口的 getModel方法并返回所创建的对象 示例 获取用户输入的用户名和密码 jsp页面 java代码 需注意的是表单name的值应与类的属性名相同. 三.表达式封装 1.在 action 中声明实体类 2.生…
应用场景,如下: 当两个不同的项目共享同一个资源目录.同一个数据库时,由于两项目根目录不一样,再加上部分项目可能有入口重写规则限制了用户的访问权限. 因此,我们可以利用window 服务器给我们提供的mklink命令来建立两个项目资源目录的映射关系. 使用步骤: 1)进入cmd命令行模式 2)在cmd里面输入: mklink /J "D:\back1" "D:\back" 注意:执行的时候,back1 文件夹必须不存在:必须在NTFS 盘上进行才可以. 实质是,创建…
一.struts2发展历史 经过很多年发展,Struts1已经成为了高度成熟的框架,但随着时间的发展,Struts1的局限性和缺点不断的暴露出来.      现在Struts已经分化成了两个框架      -第一个是在Struts1的基础上,融合了另一个web框架Webwork的Struts2.Struts2实质上是以Webwork为核心的,和Struts1有很大区别.     -第二个是Shale,与原有Struts1关联很少,使用了全新的设计思想. 二.MVC思想概述 java web动态编…
Struts2封装获取表单数据方式 原始方式获取表单封装到实体类对象 属性封装(会用) 1 直接把表单提交属性封装到action的属性里面 2 实现步骤 (1)在action成员变量位置定义变量 - 变量名称和表单输入项的name属性值一样 (2)生成变量的set方法(把set和get方法都写出来) 3 使用属性封装获取表单数据到属性里面,不能把数据直接封装到实体类对象里面,使用时还是要new对象,set... 模型驱动封装(重点) 1 使用模型驱动方式,可以直接把表单数据封装到实体类对象里面…
本章要点 —  Struts 2的下载和安装 — 纯手工创建一个Web应用 — 纯手工创建一个Struts 2应用 — 实现Struts 2的Action — 配置Struts 2的Action — 在Action中访问HttpSession — 在JSP中输出Action的返回值 — 使用Struts 2的表单标签 — 程序国际化初步 — 数据校验初步 前面已经简要介绍了Struts 2的起源,以及Struts 2的两个前身:Struts 1和WebWork,并详细对比了Struts 2和St…
下载地址:SSH框架下的多表增删改查 点击进入码云Git下载 点击进入CSDN下载 项目结构: 项目代码就不全部贴出来了,只贴下核心代码.需要项目的自己可以去下载. package com.atguigu.ssh.actions; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.Date; i…
安装 pip install fastapi[all] pip install unicorn 基本使用(不能同时支持,get, post方法等要分开写) from fastapi import FastAPI app = FastAPI() @app.get('/') # 点get就支持get请求 def read_root(): return {"hello":'world'} if __name__ == '__main__': import uvicorn uvicorn.ru…
Struts2中Action取得表单数据的几种方法   Struts2中Action获得表单数据的几种方法struts2 Action获取表单传值 1.通过属性驱动式JSP: <form action="sys/login.action" method="post"> <input type="text" name="username"> <input type="submit"…
一,使用Struts2标签库简化表单 在文章[基于Struts2框架实现登录案例]的基础上,通过使用Struts标签库可以简化登录页面login2.jsp <%@ page language="java" pageEncoding="utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <cen…
前几天做了一个功能,是在某个操作后,刷新父页面的,刷新时弹出了下面图的框: 网上查了之后发现这个框是表单重复提交时出现的.分析后发现,这个页面的上一个动作是form submit(在ssh框架下),这时frame.location值是提交表单时的action和method,此时做frame.location.reload(),就又一次做了提交表单的动作.这就是问题的症结.上图中的框是浏览器自己发现表单重复提交而出现的. 这个时候想刷新页面,就要换一个不是提交表单的location值了,问题因此得…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sunshoupo211/article/details/30249239 1.将Action类作为一个POJO,直接进行接收 在Action类内部定义字段名称.并为之声明get/set方法. 页面表单name属性与定义字段名称同样. package com.common.login; import com.opensymphony.xwork2.ActionSupport; @Suppress…
在实际开发场景中,难免遇到需要多个表单的数据传递问题. 之所以要进行多表单的数据传递是因为可以进行数据分组,便于数据的维护. 这个时候,出于不依赖jquery的考虑,有一个原生js函数来解决这个问题无疑是最好的.而源自于<JavaScript高级程序设计>一书的serialize()函数就是解决这个问题的最好办法,该函数如下: function serialize(form){ var parts = [], field = null, i, len, j, optLen, option, o…
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核心配置.动态方法调用.结果集的处理 传送门 JavaWeb_(Struts2框架)Log4j的配置以及解决中文乱码 传送门 JavaWeb_(Struts2框架)参数传递之接收参数与传递参数 传送门 JavaWeb_(Struts2框架)Ognl小案例查询帖子 传送门 JavaWeb_(Struts…
本文算是struts2 异常处理3板斧.spring mvc4:异常处理 后续篇章,普通页面出错后可以跳到统一的错误处理页面,但是ajax就不行了,ajax的本意就是不让当前页面发生跳转,仅局部刷新,从而改善用户体验,基本思路是:把异常转换成json数据返回,这样ajax的回调函数,就能解析出错误原因. 一.如何区分ajax请求与普通请求 打开firefox的调试工具观察一下: 普通的页面请求 jquery发起的ajax请求 对比一下,可以发现jquery发生的ajax请求,Request He…
 Struts1和Struts2的区别和对比: Action 类: • Struts1要求Action类继承一个抽象基类.Struts1的一个普遍问题是使用抽象类编程而不是接口,而struts2的Action是接口. • Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能.Struts2提供一个ActionSupport基类去 实现 常用的接口.Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Ac…
一.Struts2访问Servlet的API 前面已经对 Struts2的流程已经执行完成了,但是如果表单中有参数如何进行接收又或者我们需要向页面保存一些数据,又要如何完成呢?我们可以通过学习 Struts2访问 Servlet的API来实现这样的功能. 在 Struts2中, Action并没有直接和 Servlet api进行耦合,也就是说在 Struts2的 Action中不能直接访问 Servlet api.虽然 Struts2中的 Action访问 Servlet API麻烦一些,但是…
MVC模式-----struts2框架 第一个struts2程序 struts2框架是通过一个过滤器将struts2集成到Web应用程序中的,这个过滤器的对象是StrutsprepareAndExecuteFilter.struts2框架通过过滤器对象,获取web应用中的Http请求,并将http请求转发到的指定Action进行处理,Action根据处理结果返回给用户相应的页面. 创建一个简单的struts项目,需要创建于用户进行交互并获取输入信息的jsp页面:呈现最终信息的页面:创建一个用于业…
day01 Struts2概述 1 什么是框架 试想一下,人与人之间不同之处多,还是相同之处多呢?当然是相同之处多,不同之处少!人都有头,而且头都在脖子上面! 软件之间也是相同之处多,不同之处少,框架就是把软件中相同的部分抽取出来而形成的.开发人员在框架的基础之上进行开发,那么只需要给出软件独有部分即可. 软件相同之处称之为应用组件,不同之处称之为业务组件.框架就是已经完成了应用组件这部分的半成品软件. 应用框架应该具有如下特征: 1)       已经知道它们在其它程序上工作的很好:(经过良好…
一.Struts2简介 参考<JavaEE 轻量级框架应用与开发—S2SH> Struts框架是流行广泛的一个MVC开源实现,而Struts2是Struts框架的新一代产品,是将Struts1和WebWork两种技术进行兼容.合并的全新的MVC框架.Struts2框架充分发挥了Struts1和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易. Struts1运行原理:  Struts1工作流程: (1)客户端向Web应用发送请求,请求被核心控制器Action…
第一步:下载struts2对应的jar包,可以到struts官网下载:http://struts.apache.org/download.cgi#struts252 出于学习的目的,可以把整个完整的压缩文件都下载下来. 里面包括:1 apps:示例应用,对学习很有帮助 : 2 docs:相关学习文档.API文档等: 3 lib:核心类库,依赖包: 4:src:源代码 第二步:在eclipse新建一个Dynamic Web Project类型工程,一直点next,记得勾选generate web.…
Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置: <span style="font-size:18px;">  <!-- 这是包名和命名空间的声明 --> <package name="orgPackage" namespace="/org" extends="struts-default"…
在前端提交数据的时候有时候可能会由于网络延迟等原因,我们在等待的时候会多次点击保存按钮,这可能会导致我们一次输入的数据多次提交,导致数据重复.最近在做项目的时候碰到了这个问题,先说一点,这个问题的解决方案有很多种,有的在前端解决,有的方案在后端解决,个人觉得能够在前段解决的最好在前段就解决,而且拿java来说,如果在后端解决,在高并发的情况下还要考虑线程安全的问题.最近接触的项目的前端是easyui,在此把解决方案做下记录. 不论是easyui还是别的框架,总体的一个思路是:当我们点击保存按钮之…
国际化牵涉的知识非常多,这里只能简单的介绍,程序国际化的一般做法是:在jsp页面时, 不是直接输出信息,而是输出一个key值,该key值在不同语言环境下找到对应资源文件下的 对应信息,因此首先要创建满足不同国家或地域用户的资源文件. 1) 创建国际化资源文件 资源文件的命名规则:basename_语言代码_国家代码.properties,文件中包含一些键值对. A.语言代码_国家代码:zh_CN.en_US等. B.国际资源文件放在classes文件夹下. MessageResource_zh_…
Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages .Servlet.标签库以及面向对象的技术水准.最初的struts1.x很快在企业开发中流行了起来,与此同时,当时还有一个非常的优秀的web开发框架诞生,那就是webwork,但webwork没有像struts1那么幸运,没有得到流行,但webwork简洁.灵活功能强大等优点绝不输于当时流行的strut1.x.当然struts1开发人员不是也没有意识到…