用java怎么制作验证码

用java怎么制作验证码,第1张

原理:

1随机生成4个数字 用到了Random类

2对这4个数字设置字体格式 用 setFont方法

3改变字体颜色用setColor 然后随机生成颜色

代码如下

package s1;

import javaawtColor;

import javaawtFont;

import javaawtGraphics;

import javaawtimageBufferedImage;

import javaioIOException;

import javaioPrintWriter;

import javautilRandom;

import javaximageioImageIO;

import javaxjmsSession;

import javaxservletServletException;

import javaxservlet>

在Servlet端,获取参数可以通过

requestgetInputStream,及requestgetParamter来进行。

其中,当Rest访问传入参数是通过conn的outputStream来进行的,可以通过requestgetInputStream来进行参数获取(Post方式可通用);

当以urlkey=value方法传递参数时,可以通过requestgetParamter来进行参数获取。(Post方式可通用)

其中requestgetInputStream和requestgetParamter两种方式不能同时出现。当requestgetParamter运行的过程,也是输入流的读取过程。当输入流读取完成后,再次调用时无效的。

以下是android手机上发送文件名并且得到文件大小的代码Java

code

//

向服务器提出下载请求,返回下载文件的大小

private

long

request(String

fileName,

String

password)

throws

IOException

{

//

获取socket的输入流并包装成DataInputStream

DataInputStream

in

=

new

DataInputStream(socketgetInputStream());

//

获取socket的输出流并包装成PrintWriter

PrintWriter

out

=

new

PrintWriter(new

OutputStreamWriter(

socketgetOutputStream()));

//

生成下载请求字符串

String

requestString

=

fileName;//

+

@

+

password;

Systemoutprintln(发出下载请求:+fileName);

outprintln(requestString);

//

发出下载请求

outflush();

return

inreadLong();

//

接收并返回下载文件长度}

以下是C#服务器收到android发来的文件名,知道文件之后发送文件大小和文件的代码C#

code

private

string

ReceiveFileName(){string

recvStr

=

;byte[]

recvBytes

=

new

byte[1024];int

bytes

=

m_socketReceive(recvBytes,

recvBytesLength,

0);

//从android客户端接受信息recvStr

=

EncodingASCIIGetString(recvBytes,

0,

bytes);ConsoleWriteLine(文件名+recvStr);return

recvStr;//返回文件名}

private

void

SendFile(){while

(m_IsStart){string

fileName

=

ReceiveFileName();if

(fileName

!=

){if

(FileExists(m_FileDirect

+

1jpg))//下载本地存在的一个文件{FileInfo

fi

=

new

FileInfo(m_FileDirect

+

1jpg);byte[]

len

=

BitConverterGetBytes(fiLength);m_socketSend(len);//发送文件的长度//发送文件try{m_socketSendFile(m_FileDirect

+

1jpg);}catch

(Exception

e){ConsoleWriteLine(出现错误

+

eMessage);}}}}}

------解决方案--------------------------------------------------------

Java

code//

获取socket的输入流并包装成DataInputStream

这个不就是接收的地方吗在第一段代码中

requestentityacceptcharset方法:注解:@ResponseBody 概念

@ResponseBody  :该注解使用在Controller 方法上的  。将方法的返回值通过适当的转换器转换为指定的格式之后,写入到 response 对象的 body 区),通常用来给客户端返回 JSON 数据或者是 XML 数据。

当方法上面没有写 ResponseBody 时,底层会将方法的返回值封装为 ModelAndView 对象;需要注意的是,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过 response 对象输出指定格式的数据。

bad request

错误的请求

Bad Request The server did not understand the request 跟读

Bad Request 服务器不能理解该请求

Request对象的主要方法

setAttribute(String name,Object):设置名字为name的request 的参数值

getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request 对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有 Cookie 对象,结果是一个Cookie 数组

getCharacterEncoding() :返回请求中的字符编码方式

getContentLength() :返回请求的 Body的长度

getHeader(String name) :获得>

以上就是关于用java怎么制作验证码全部的内容,包括:用java怎么制作验证码、qs的安装与使用、如何获取jsp输出内容用HttpServletResponseWrapper等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9626846.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存