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