struts学习1

  前些天学习了struts框架.现在把我的学习心得记下来和大家分享一下.

  java最先用于web开发时,它没有现在的jsp或其他view工具,那时我们只能通过把html代码写到servlet中,以此把运行后的结果返回给client,但是这大大加重了程序员的负担并且这样也把前台和后台混合在一起给开发带来了问题,是前台和后台耦合在一起.sun公司为了消除此缺点,开发了jsp,让jsp负责显示。这样它就把显示和控制分开了,减少他们之间的耦合度.基于此,sun公司提出了model1,就是人们常说的jsp+javabean的模式,model1很好的解决了上面的问题,但是它也有自己的缺点,它在开发一些小型项目时还可以,但是用model1开发大型的项目那么就会出现很多问题,比如他的扩展性很差,如果客服更改了需求那么我们改的时候就会不只改一个地方。这样还不如从做。基于此又提出了model2,该模型简单的说就是mvc,把各个层分开,不相互影响,让程序员只关注它自己的业务逻辑,界面人员只关注它自己的界面设计。mvc通俗的说就是model-view-controler,model就是模型层它包括系统内部的状态和改变这些状态的业务逻辑。view就是显示给客服看的界面通常用jsp或其它视图组件.controler就是控制器它通过把请求转发到相应的业务逻辑处理方法上进行处理.以下是一个简单的mvc模型图.

struts就是基于此模型开发的,我这里介绍的是struts1.3,struts现在还有另一个版本struts2.x它是基于webwork的,这里不做介绍.

     struts是apche组织的一个开源项目,它使我们开发基于mvc的项目时非常方便,只需要按照步骤就可以开发了。下面我们就来开发一个简单的struts入门程序。首先我们要搭建好我们的环境。我用的是myeclipse6.0+jdk1.6+tomcat6.x.

首先我们先要到apache网站上下载支持struts的jar包,我们到http://struts.apache.org/下载最新的版本,目前是struts1.3.10.我们下载完整版本.下载完毕后我们解压到我们的磁盘上。它有四个目录,apps目录是它自带的例子,我们自学时可以参照它.docs是它的帮助文档。lib是它的核心酷以及支持它的第3方类库。src是struts的源代码.我们打开myeclipse,新建一个javaweb项目名字叫login,然后我们引入struts的jar包.在我们刚解压下来的目录下找到lib目录,把里面的jar包全部引入到项目中去.然后配置web.xml文件.这时我们不知道怎样配置,我们可以参照struts提供的例子来配置.我们到apps目录下解压struts-blank-1.3.10.war文件,解压后把里面的web.xml文件拷贝到你的项目中去.这是它的核心配置:

<web-app>
  <display-name>Struts Blank Application</display-name>
 
  <!-- Standard Action Servlet Configuration -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
 </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

</web-app>

配置了actionservlet这就是mvc中的c,配置它就是告诉系统所有请求交给它处理.这里还配置了struts-config.xml文件,这是告诉系统struts的配置文件在哪里,在这里这个配置文件可以省略,因为struts的默认配置文件名就是struts-config.xml,如果你更改了名字这时你才必须配置它,其它的以后在说.配置好了web.xml文件我们就开始写代码.

我们下创建一个login.jsp的页面,其中有2个参数name,password,form表单中的action属性先不写.然后我们创建一个actionform的子类,因为struts提供了一个类可以帮我们自动接收页面中穿过来的数据,我们只需要继承它就可以了.以下是loginForm类:

package com.yu.actionform;

import org.apache.struts.action.ActionForm;

/**
 *
 * 接受数据的actionform
 *
 */
public class loginForm extends ActionForm {
 private String name;

 private String password;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

}
然后我们写处理改请求的处理类,该处理类也要继承struts提供的Action类:

 

package com.yu.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.yu.actionform.loginForm;
/**
 *
 * @处理login页面的请求的处理类
 *
 */
public class loginAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  loginForm lf=(loginForm)form;
  String name=lf.getName();
  String password=lf.getPassword();
  String msg=null;
  if(name==null||name.equals("")){
   msg="名字不能为空";
   request.setAttribute("error",msg);
   return mapping.findForward("error");
  }
  if(password==null||password.equals("")){
   msg="密码不能为空";
   request.setAttribute("error",msg);
   return mapping.findForward("error");
  }
  if("yu".equals(name)&&"zxy".equals(password)){
   msg="登录成功!";
  }else{
   msg="登录不成功!";
  }
 
  return mapping.findForward("success");
 }
 

}
然后配置该action处理类:

<?xml version="1.0" encoding="ISO-8859-1" ?>


<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">

 


<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.yu.actionform.loginForm"/>
</form-beans>
<action-mappings>
<action path="/login" name="loginForm" type="com.yu.action.loginAction" input="/login.jsp">
<forward name="success" path="/success.jsp"/>
<forward name="error" path="/login.jsp"/>
</action>
</action-mappings>
</struts-config>

然后执行,执行成功就会显示登录成功,执行失败就会显示失败.

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.yu.actionform.loginForm;
/**
 *
 * @处理login页面的请求的处理类
 *
 */
public class loginAction extends Action {

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  loginForm lf=(loginForm)form;
  String name=lf.getName();
  String password=lf.getPassword();
  String msg=null;
  if(name==null||name.equals("")){
   msg="名字不能为空";
   request.setAttribute("error",msg);
   return mapping.findForward("error");
  }
  if(password==null||password.equals("")){
   msg="密码不能为空";
   request.setAttribute("error",msg);
   return mapping.findForward("error");
  }
  if("yu".equals(name)&&"zxy".equals(password)){
   msg="登录成功!";
  }else{
   msg="登录不成功!";
  }
 
  return mapping.findForward("success");
 }
 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值