Java?xml配置
来源:互联网 发布:java实现发邮件带附件 编辑:程序博客网 时间:2024/04/28 09:11
Servlet配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>o</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>OA</servlet-name> <servlet-class>OA.servlet.OAService</servlet-class> </servlet> <servlet-mapping> <servlet-name>OA</servlet-name> <url-pattern>/OA</url-pattern> </servlet-mapping> </web-app>//servlet-name相同//servlet-class是servlet继承Httpservlet类的全部路径//url-pattern是from表单的提交路径//通过url-pattern找到servlet-name相同的servlet-class,然后运行配置的class文件,doget/doPost.
Servlet/应用
/*结构建立实体通过数据访问层Dao层用实体接受写服务层对实体进行操作然后from表单通过Servlet用服务层进行实现,*/package OA.servlet;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Collection;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import OA.Connection.Generic;import OA.mode.Dept;import OA.service.DeptService;import net.sf.json.JSONArray;import oracle.net.aso.s;public class DeptServlet<T> extends HttpServlet { private T T; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(delete(req)); resp.sendRedirect(req.getContextPath() + "/Dept.jsp"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html; charset=UTF-8"); DeptService DeptService = new DeptService(); Dept dept = new Dept(); switch (req.getParameter("Type")) { case "Add": //通过ajax实现 Collection<Dept> list = DeptService.Fid(0); resp.getWriter().print(JSONArray.fromObject(list)); resp.getWriter().flush(); resp.getWriter().close(); break; case "AddDept": int id = Integer.parseInt(req.getParameter("Dept_id")); String name = req.getParameter("Dept_name"); int fid = Integer.parseInt(req.getParameter("Dept_fid")); String dec = req.getParameter("Dept_description"); dept.setDept_id(id); dept.setDept_name(name); dept.setDept_fig(fid); dept.setDept_description(dec); boolean end = DeptService.add(dept); System.out.println(end); resp.sendRedirect(req.getContextPath() + "/Dept.jsp"); break; default: break; } } @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { // TODO Auto-generated method stub super.service(arg0, arg1); } public boolean delete(HttpServletRequest req) { try { req.setCharacterEncoding("UTF-8"); switch (req.getParameter("Type")) { case "Dept": System.out.println("Dept"); Dept dept=new Dept(); Generic<Dept> Generic=new Generic<Dept>(); Generic.delete(dept, Integer.parseInt(req.getParameter("id"))); break; default: break; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); return false; } return true; }}
ServletAjax的/应用
<script type="text/javascript"> $(function(){ var sopt="<option value='0'>顶级部门</option>"; $.ajax({ url:'<%=request.getContextPath()%>/Dept', type:'post', data: {Type:'Add'}, dataType:'JSON', success: function(data){ $.each(data,function(i,n){ sopt+="<option value='"+n.dept_id+"'>"+n.dept_name+"</option>"; }) $("#fid").append(sopt); } }); $("#Add").click(function() { }); })</script>
Struts2框架的Xml配置/搭建/应用
//(1)解压struts-2.3.4.1-all//(2)然后解压struts-2.3.4.1/apps/struts2-blank.war//(3)Struts\WEB-INF\Web.xml<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list></web-app>//复制内容到项目里的web.xml文件<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>//(4)Struts\WEB-INF\src\java\struts.xml(该xml文件放在项目src下面)//(5)把struts.xml文件简化后<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts> <package name="default" namespace="/" extends="struts-default"> <action name="*_*" class="OA.service.{1}Over" method="{2}"> <result>/{1}{2}.jsp</result> <!--<result>/OA.jsp</result>--> </action> </package></struts>//<action>的name是web:url路径,通过class(要执行的class文件全路径),method是执行的方法;//<result>是通过<action>name执行<action>calss配置的java.class文件,运行完后打开的网页,现在是DeptAdd.jsp;package OA.service;import java.util.ArrayList;import java.util.Collection;import org.apache.struts2.components.ActionComponent;import com.opensymphony.xwork2.ActionContext;import OA.Connection.Connection;import OA.Uilt.GetConnectionValues;import OA.mode.Dept;import OA.mode.Primarykey;public class DeptOver extends GetConnectionValues { private int Dept_id; private String Dept_name; private int Dept_fig; private String Dept_description; public int getDept_id() { return Dept_id; } public void setDept_id(int dept_id) { Dept_id = dept_id; } public String getDept_name() { return Dept_name; } public void setDept_name(String dept_name) { Dept_name = dept_name; } public int getDept_fig() { return Dept_fig; } public void setDept_fig(int dept_fig) { Dept_fig = dept_fig; } public String getDept_description() { return Dept_description; } public void setDept_description(String dept_description) { Dept_description = dept_description; } public DeptOver() { } public String Add() { System.out.println("*****"); Dept Dept = new Dept(); // Dept.setDept_id(Dept_id); // Dept.setDept_name(Dept_name); // Dept.setDept_fig(Dept_fig); // Dept.setDept_description(Dept_description); // Connection.Call().Add(Dept); Collection<Dept> list = Connection.Call().Select();// ArrayList<Dept> list=new ArrayList<Dept>();// list.add(new Dept(1, "888", 2, "fsufk")); ActionContext.getContext().put("list", list); System.out.println(Dept_id + Dept_name + Dept_fig + Dept_description); ActionContext.getContext().put("Dept_id", "52"); return "success"; }}//<action>的配置的class,它的字段属性必须封装,属性名必须和from表单里面input的name相同;
Struts2框架的/应用
package OA.service;import java.util.Collection;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ModelDriven;import OA.Connection.Connection;import OA.mode.Point;import OA.mode.Dept;public class DeptOver implements ModelDriven<Dept> { private Dept entity; private Point point; public Point getPoint() { return point; } public void setPoint(Point point) { this.point = point; } public Dept getEntity() { return entity; } public void setEntity(Dept entity) { this.entity = entity; } public String OA() { System.out.println(point); return "OA"; } /** * 添加 * * @return */ public String Add() { int id = entity.getDept_id(); entity.setDept_id(id); entity.setDept_name(entity.getDept_name()); entity.setDept_fig(entity.getDept_fig()); entity.setDept_description(entity.getDept_description()); if (id == 0) { Connection.Call().Add(entity); } Connection.Call().Modify(entity); return "success"; } /** * 查询 * * @return */ public String Select() { Collection<Dept> list = Connection.Call().Select(); ActionContext.getContext().put("list", list); return "success"; } /** * 删除 * * @return */ public String Delete() { Connection.Call().delete(entity.getDept_id()); return "delete"; } @Override public Dept getModel() { if (entity == null) { entity = new Dept(); } return entity; }}//该类通过implements于ModelDriven<T>,对那个实体进行操作就给<Dept>填写里面,还必须重写getModel方法,getModel优先运行,Dept的封装类的字段属性必须和页面的name相同.
Struts2框架向页面发送信息
//添加到Context()ActionContext.getContext().put("list", list);//拿到值<S:iterator value="#list" var="a"> <S:property value="#a.dept_name" /> <S:property value="#a.dept_id" /></S:iterator>//该类型主要用于判断用户是否登录ActionContext.getContext().getSession().put("list", list);//后续补充ActionContext.getContext().getValueStack().push(list);//后续补充ServletActionContext.getRequest().setAttribute("list", list);
Struts2全局转换器
//创建一个类package OA.mode;import java.util.Date;public class Point { private int x; private int y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; }}//然后再Action里面进行封装package OA.service;import java.util.Collection;import java.util.Date;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ModelDriven;import OA.Connection.Connection;import OA.mode.Point;import OA.mode.Dept;public class DeptOver implements ModelDriven<Dept> { private Dept entity; private Point point; private Date date; public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Point getPoint() { return point; } public void setPoint(Point point) { this.point = point; } public Dept getEntity() { return entity; } public void setEntity(Dept entity) { this.entity = entity; } public String OA() { //System.out.println(point.getDate()); Collection<Dept> list = Connection.Call().Select();// ActionContext.getContext().put("list", list); ActionContext.getContext().getSession().put("list", list);// ActionContext.getContext().getValueStack().push(list);// ServletActionContext.getRequest().setAttribute("list", list); return "OA"; } /** * 添加 * * @return */ public String Add() { int id = entity.getDept_id(); entity.setDept_id(id); entity.setDept_name(entity.getDept_name()); entity.setDept_fig(entity.getDept_fig()); entity.setDept_description(entity.getDept_description()); if (id == 0) { Connection.Call().Add(entity); } Connection.Call().Modify(entity); return "success"; } /** * 查询 * * @return */ public String Select() { Collection<Dept> list = Connection.Call().Select(); ActionContext.getContext().put("list", list); ActionContext.getContext().getSession().put("list", list); ActionContext.getContext().getValueStack().push(list); ServletActionContext.getRequest().setAttribute("list", list); return "success"; } /** * 删除 * * @return */ public String Delete() { Connection.Call().delete(entity.getDept_id()); return "delete"; } @Override public Dept getModel() { if (entity == null) { entity = new Dept(); } return entity; }}//转换器package OA.service;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import OA.mode.Dept;public class DateConverter extends StrutsTypeConverter { @Override public Object convertFromString(Map arg0, String[] val, Class arg2){ //val就是接受的值 Point Point=new Point(); //接受12,88 String value=val[0]; //把12,88用逗号隔开生成数组 String[] Field=value.split(","); Point.setX(Integer.parseInt(Field[0])); Point.setY(Integer.parseInt(Field[1])); return Point; } @Override public String convertToString(Map arg0, Object arg1) { //arg1接受的值转换 Point Point=(Point)arg1; return "X:"+Point.getX()+"Y:"+PointgetY(); }}/*创建一个实体类在Action进行封装配置全局转换器:必须在src下创建xwork-conversion.properties文件文件内容是OA.mode.Point=OA.service.PointConverter文件格式是:实体类的全路径=转换该类的全路径该例子效果:没有转换器的时候:在input框输入12,88,接受的页面显示的是12,88,debug里面是null有转换器的时候:在input框输入12,88,接受的页面显示的是"X:12Y:88,debug里面是有值得*///如果全局转换器配置一个类,则在局部转换器给该类里的一个属性进行转换的时候,有时候不运行
Struts2局部转换器转换器
package OA.service;import java.util.Collection;import java.util.Date;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ModelDriven;import OA.Connection.Connection;import OA.mode.Point;import OA.mode.Dept;public class DeptAction implements ModelDriven<Dept> { private Dept entity; private Point point; private Date time; public Date getTime() { return time; } public void setTime(Date time) { this.time = time; } public Point getPoint() { return point; } public void setPoint(Point point) { this.point = point; } public Dept getEntity() { return entity; } public void setEntity(Dept entity) { this.entity = entity; } public String OA() { return "OA"; } /** * 添加 * * @return */ public String Add() { int id = entity.getDept_id(); entity.setDept_id(id); entity.setDept_name(entity.getDept_name()); entity.setDept_fig(entity.getDept_fig()); entity.setDept_description(entity.getDept_description()); if (id == 0) { Connection.Call().Add(entity); } Connection.Call().Modify(entity); return "success"; } /** * 查询 * * @return */ public String Select() { Collection<Dept> list = Connection.Call().Select(); ActionContext.getContext().put("list", list); ActionContext.getContext().getSession().put("list", list); ActionContext.getContext().getValueStack().push(list); ServletActionContext.getRequest().setAttribute("list", list); return "success"; } /** * 删除 * * @return */ public String Delete() { Connection.Call().delete(entity.getDept_id()); return "delete"; } @Override public Dept getModel() { if (entity == null) { entity = new Dept(); } return entity; }}//转换类package OA.Converter;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;public class DeptConverter extends StrutsTypeConverter { private SimpleDateFormat sim = new SimpleDateFormat("yyyy/MM/dd"); @Override public Object convertFromString(Map arg0, String[] value, Class arg2) { Date date = null; try { date = sim.parse(value[0]); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return date; } @Override public String convertToString(Map arg0, Object arg1) { System.out.println("执行完了"); Date Date = (Date) arg1; return "时间:" + sim.format(Date); }}/*在Action命名一个time,封装一下.文件名:DeptAction-conversion.properties,格式是ActionClass-conversion.properties位置:文件必须在Action同一个包中,内容:time=OA.Converter.DeptConverter格式是:要转换的time=转换类的路径例子效果:没有转换器的时候:在input框输入2012/12/12,接受的页面显示的是2012/12/12,debug里面是null有转换器的时候:在input框输入2012/12/12,接受的页面显示的是时间:2012/12/12 ,debug里面是有值的*/
1 0
- java log4j.xml配置
- java 加载XML配置
- Java?xml配置
- java web.xml配置servlet
- java:struts.xml配置解析
- java web.xml配置servlet
- java web.xml配置servlet
- Java web.xml配置 servlet
- java Web.xml的配置
- [Java]log4j的xml配置详细
- java从XML中读取数据源配置
- java log4j.xml配置与使用
- java连接池配置(xml)
- java解析xml(JDOM)配置环境
- java web.xml配置描述符
- java web工程web.xml配置详解
- java web.xml 节点配置介绍
- java web.xml 配置default 页面
- 法线贴图原理
- ucos-ii操作系统
- pl/sql developer 无法连接远程Oracle(注意是远程oracle)
- 挖泥船舶定位程序
- 用adb 连接自己的小米手机提示 unauthorized
- Java?xml配置
- ASCII码
- ios 绘制虚线 CGContextSetLineDash的使用
- 类加载器
- The path "" is not a valid path to the xx-generic kernel headers
- android事件的分发机制
- matlab 图片批量处理
- 蓝桥-树-图最小生成树2
- DDos防护系列之3--DDos防御系统