Java学习日记_廖万忠

关联关系(双向关联,前向关联:多对一较多,看表中的字段,页面的数据关联的情况)

实体的类型尽量用包装类型,防止nll赋值出现异常基本类型一般用在运算中,效率高。    

13. 有用的工具:自定义通用工具,用在不用框架的web开发

CommonUtils:

public class CommonUtils

 

/返回32位通用唯一标识符,是去掉其中的4个_的

public static String uuid()

return UUID.randomUUID().toString().replace("_","");

 

 

/把map转换为clazz型的bean

public static <T> T toBean(Map map,Class<T> clazz)

 

try

/通过clazz穿件实例化bean

T bean=clazz.newInstance();

/字符串到日期的转换

ConvertUtils.register(new DateConverter(),java.util.Date.class);

/构成bean把map中的数据封装到bean中

BeanUtils.populate(bean,map);

return bean;

catch(Exception e)

throw new RuntimeException();

public class DateConverter implements Converter

@Override

public Object convert(Class type,Object value)

/如果要转换的值为空指针,那么直接返回Null

if(value==null)

return null;

 

/如果要转换的值不为字符串,那么不转换了,直接返回对象value

if(!(value instanceof String))

return value;

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

try

return sdf.parse(value);

catch(ParseException e)

throw new RuntimeException();

 

 

2015/8/20

 

 

 

1. HttpServlet:doGet(),doPost(),service();

2. 父类转子类父类转子类是向下转型,需要强转,原则:父类型的引用指向的是哪个子类的实例,就能转向哪个子类的引用。

3. 通用工具类:使用

/用来作为其他Servlet的父类,Struts的Action很像

public class BaseServlet extends HttpServlet throws ServletException,IOException

/覆写service方法,调用用户想要调用的方法

@Override

public void service(HttpServletRequest request,HttpServletResponse response)

/设置相应编码

response.setContentType("text/html;charset=utf-8");

/获取method参数,它是用户想调用的方法

String methodName=request.getMethod("method");

/方法对象

Method method=null;

/通过方法名获取方法对象

try

method=this.getClass.getMethod(methodName,HttpServletRequest.class

HttpServletResponse.class);

catch(Exception e)

/编译时异常转化为运行时异常,不要一味地抛异常,会增加复杂度

throw new RuntimeException(e);

try

/调用用户的方法之后的返回值,这里是字符串("f:goods/UserServlet")

String result=method.invoke(this,request,response);    

/根据返回结果,决定是否转发还是重定向,默认为转发

if(result!=null & !result.isEmpty())

/

int index=result.indexOf(":");

/如果没有返回值,就默认转发

if(index=-1)

request.getRequestDispather(result).forward(request,response);

else

/拆分字符串分割出前缀

String start=result.356lo9095/(0,index);

/要转发或重定向的路径

String path=result.substring(index+1);

if("f".equals(start))

/前缀为f"表示转发

request.getReqeustDispather(path).forward(request,response);

else if("r".equals(start))

/前缀为r",表示重定向

respose.sendRedirect(this.getServletContext+path);

catch(Exception e)

throw new RuntimeException(e);

4. 自定义JdbcUtils

5. JQuery插件:

JQuery_validate

JQuery_complete

JQuery_treeview

fckeditor富文本编辑器

6. 结构化数据数据库 半结构化数据(xml,html)

7. 验证码:防止恶意攻击,机器人注册,暴力破解。

Java一处编译,到处运行。

×自定义;用AWTAbstract Window Toolkits依赖本地的类库,平台依赖性实现,有点费劲

用例:VerifyCode

/验证码实体类

public class VerifyCode()

/验证码矩形宽高

private int width=70;

private int hight=35;

/随机数下面有用

private Random random=new Random();

/验证码中的字体类型

private String[] fontNames={};

/矩形框背景色默认为白色

private Color bgColor=new Color(255,255,255);

#牛客AI配图神器#

#实习如何「偷」产出?##你投递的公司有几家约面了?##牛客创作赏金赛##哪些公司开提前批了?##除了主业以外,你还有哪些其他收入?#
Java技术 文章被收录于专栏

JavaEE技术 编程开发经验 企业通用技术

全部评论

相关推荐

人在美团实习,突然听到旁边人说要开始秋招了,然后才发现美团秋招提前批已经开,提前批和正式批不冲突,开来可以开投了,下面是招聘信息岗位职责AI产品经理提前批是美团面向AI方向高潜校招生的专项人才项目,我们期望用AI让世界变更好,推动人类发展进步!在这里,你将会和AI核心团队共同参与兼具发展前景与挑战性的项目,由专家直接进行带教,自己写Demo、快速做实验,基于丰富的业务落地场景和海量的用户,想你所想,做你想做!任职要求【我们欢迎什么样的你?】需同时符合以下三个条件:1.秉持AI改善世界的初心:希望用AI让世界变更好,并因此愿意主动学习、实践AI知识;2.软性素质和能力:具备极强的好奇心、学习能力、逻辑思考能力和动手能力;3.对AI产品有足够的理解和实践经验:1)优秀AI产品的重度用户:日常使用的模型为全球顶尖AI模型;2)理解基础理论:习惯阅读和学习与自己工作相关的AI论文、技术报告,并把它用在工作改进中;3)具备AI编程能力:是AI编程工具的深度用户,并实际开发过Demo、小工具,调过头部模型的API;4)有AI产品的工业实践:参与过一款有实际用户的AI产品的设计或开发过程。【加入我们可以获得什么?】1.前沿的业务方向:100%精力投入AI,兼具发展前景与挑战性,具有丰富的业务落地场景和海量的用户;2.与懂AI的人同行:AI领域专家直接带教,团队人才云集,日常在用最好的模型/工具,成长迅速;3.产研合作效率高:不写复杂的PRD,自己可以写Demo,快速做实验,并支持去生产环境做实验;4.有竞争力的待遇:极具竞争力的薪资待遇,助力你的职业发展!工作城市北京市、上海
投递美团等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务