吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1912|回复: 3
收起左侧

[Java 转载] 通过反射获取数据

[复制链接]
Raix 发表于 2019-11-24 21:42
由于昨晚凌晨无聊写了个帖,由于木有仔细看版规,故删,我的错。我想提个小小的意见,能否删帖不要全部删了,,辛辛苦苦手敲的给删了, 还不能找回来emmm.....
为了更加方便看清我就把包名都给你写了,,还有jar包
-------------------------------------官方大大,如果有误,一定提醒我或者帮我修改下噻,不要删帖不要删帖---------------

WEB_XML (项目名)
        src
             cn.itheima.web.servlet
                     IMyServlet.java
             cn.itheima.web.servletImpl
                      IMyServletImpl.java
             cn.itheima.web.Testservlet
                     TestMyServlet.java
             cn.itheima.xml.dtd
                     web.xml
                     web-app_2.3.dtd
       lib
           dom4j-1.6.1.jar
           jaxen-1.1-beta-6.jar
通过上诉也能一目了然了噻,有基础自然懂,看不懂上面的就是还木有正式接触Java,或Exxxxx某,或者IDxx某等编程软件



言归正传开始写代码


-----------------------------------------------------------------分割线-----------------------------------------------------------------------------
IMyServlet.java部分(接口)

[Java] 纯文本查看 复制代码
package cn.itheima.web.servlet;

public intferface IMyServlet(){

          public void init();

          public void service();

          public void destory();
}




IMyServletImpl.java部分(实现接口)

[Java] 纯文本查看 复制代码
package cn.itheima.web.servletImpl

public class IMyServletImpl implements IMyServlet(){
           
           @Override
           public void init(){
                   System.out.println(“进入init方法中!");   
           }
           
           @Override
           public void service(){
                   System.out.println("进入service方法中!");
           }

           @Override
           public void destory(){
                   System.out.println("进入destory方法中!");
           }
}



web.xml部分
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">   <!--使用DTD约束-->
<web-app version="1.0">
	<servlet>
		<servlet-name>IMyServlet</servlet-name>
		<servlet-class>cn.itheima.web.servletImpl</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>IMyServlet</servlet-name>
		<url-pattern>/myServlet</url-pattern>
	</servlet-mapping>
</web-app>



web-app_2_3.dtd部分   由于没有DTD后缀的,只能XML惹

[XML] 纯文本查看 复制代码
<!--[/color]
[color=#f4a460]	吾爱破解编程语言专区DTD教学实例文档。[/color]
[color=#f4a460]	模拟servlet2.3规范,如果开发人员需要在xml使用当前DTD约束,必须包括DOCTYPE。[/color]
[color=#f4a460]	格式如下:[/color]
[color=#000000]	<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
-->
a<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
<!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
<!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT servlet-class (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT jsp-file (#PCDATA)>

<!ELEMENT welcome-file-list (welcome-file+)>
<!ELEMENT welcome-file (#PCDATA)>

<!ATTLIST web-app version CDATA #IMPLIED>



TestMyServlet.java(测试代码)部分

[Java] 纯文本查看 复制代码
package cn.itheima.web.servlet1;

import org.dom4j.Document;

public class TestMyServlet(){
          
         [url=home.php?mod=space&uid=101628]@test[/url] 
         public void testMyServlet(){
                 try{ 
                               //1.创建解析器对象
                               SAXReader saxReader = new SAXReader();
                              //2.编写web.xml地址
                              String url = "src/cn/itheima/xml/dtd/web.xml";
                              //3.使用解析加载web.xml文件得到document对象
                              Document document = saxReader.read(url);
                              //4.根据元素名称获取子元素节点获取根元素节点
                              Element rootElement = document.getRootElement();
                              //5.根据元素名称获取子元素节点
                              Element servletElement = rootElement.element("servlet");
                              //6.根据元素名称获取servlet-class的文本节点
                              String servletClass = servletElement.element("servlet-class").getText();   //由于这里获取到的是IMyServletImpl.java的地址,所以用String类型来接收
                              //7.通过类全名获取字节码文件
                              Class clazz = Class.forName(servletClass);
                              //8.创建实例对象
                              IMyServletImpl my = (IMyServletImpl) clazz.newInstance();
                             //9.调用实例对象里的方法
                             my.init();
                             my.service();
                             my.destory();
                     }catch(Exception e){
                               e.printStackTrace();
                     }
         }
}




-------------------------------------教程结束,基本关键部分代码都写了注释----------------------------------------------------------


-------------------------------------本代码纯属手敲,复制粘贴锻炼不大,因为我也是新手之一,以后就做个代码搬运工惹--------


-------------------------------------大佬勿喷,,暴躁老哥欢迎欢迎,我就喜欢这样的老哥,嘿嘿嘿---------------------------------
-------------------------------------会的就当作复习一遍咯,嘿嘿嘿嘿,新手可以模范试试哈,jar包上传了的-----------------------
-------------------------------------官方大大,如果有误,一定提醒我或者帮我修改下噻,不要删帖不要删帖---------------

jarPage.rar

488.72 KB, 下载次数: 3, 下载积分: 吾爱币 -1 CB

jar包

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
天才第一步 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

无限苦肉盖神 发表于 2019-12-8 11:36
包名含有广告信息
今天发布了吗 发表于 2019-12-15 10:31
现在dom没啥用了,基本没有用的了,自己Demo玩还行
 楼主| Raix 发表于 2019-12-16 08:09
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 04:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表